Gewusst wie: Ändern von XML-Literalen (Visual Basic)

Aktualisiert: November 2007

Visual Basic bietet bequeme Möglichkeiten zum Ändern von XML-Literalen. Sie können Elemente und Attribute hinzufügen oder entfernen und bestehende Elemente durch neue XML-Elemente ersetzen. Dieses Thema enthält mehrere Beispiele für das Ändern eines vorhandenen XML-Literals.

So ändern Sie den Wert eines XML-Literals

  • Sie ändern den Wert eines XML-Literals, indem Sie einen Verweis auf das XML-Literal aufrufen und die Value-Eigenschaft auf den gewünschten Wert festlegen.

    Im folgenden Codebeispiel wird der Wert aller <Price>-Elemente in einem XML-Dokument aktualisiert.

    For Each book In From element In catalog.<Catalog>.<Book>
      book.<Price>.Value = (book.<Price>.Value * 1.05).ToString("#.00")
    Next
    

    Im Folgenden werden Beispiele für ursprünglichen und geänderten XML-Code aus diesem Codebeispiel dargestellt.

    Source XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    
    Modified XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>47.20</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>48.25</Price>
      </Book>
    </Catalog>
    
    Hinweis:

    Die Value-Eigenschaft verweist auf das erste XML-Element in einer Auflistung. Wenn es innerhalb einer Auflistung mehrere Elemente mit dem gleichen Namen gibt, ist nur das erste Element in der Auflistung von der Festlegung der Value-Eigenschaft betroffen.

So fügen Sie einem XML-Literal ein Attribut hinzu

  • Um einem XML-Literal ein Attribut hinzuzufügen, rufen Sie zunächst einen Verweis auf dieses XML-Literal ab. Sie können dann durch Hinzufügen einer neuen XML-Attributachseneigenschaft ein Attribut hinzufügen. Sie können dem XML-Literal auch ein neues XAttribute-Objekt hinzufügen, indem Sie dieAdd-Methode verwenden. Im folgenden Beispiel werden beide Optionen veranschaulicht.

    Dim newAttribute = "editorEmail"
    Dim editorID = "someone@example.com"
    For Each book In From element In catalog.<Catalog>.<Book>
      ' Add an attribute by using an XML attribute axis property.
      book.@genre = "Computer"
    
      ' Add an attribute to the Attributes collection.
      book.Add(New XAttribute(newAttribute, editorID))
    Next
    

    Im Folgenden werden Beispiele für ursprünglichen und geänderten XML-Code aus diesem Codebeispiel dargestellt.

    Source XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    
    Modified XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" genre="Computer" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331" genre="Computer" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    

    Weitere Informationen über XML-Attributachseneigenschaften finden Sie unter XML-Attribut Achseneigenschaft.

So fügen Sie einem XML-Literal ein Element hinzu

  • Um einem XML-Literal ein Element hinzuzufügen, rufen Sie zunächst einen Verweis auf das XML-Literal ab. Sie können dann ein neues XElement-Objekt als letztes Unterelement des Elements anfügen, indem Sie die Add-Methode verwenden. Sie können ein neues XElement-Objekt als erstes Unterelement hinzufügen, indem Sie die AddFirst-Methode verwenden.

    Rufen Sie zunächst einen Verweis auf ein benachbartes Unterelement ab, um ein neues Element an einem bestimmten Speicherort relativ zu anderen Unterelementen hinzuzufügen. Das neue XElement-Objekt kann dann mit der AddBeforeSelf-Methode vor dem benachbarten Unterelement hinzugefügt werden. Das neue XElement-Objekt kann auch hinter dem benachbarten Unterelement hinzugefügt werden, wenn die AddAfterSelf-Methode verwendet wird.

    Im folgenden Beispiel werden beide Verfahren veranschaulicht.

    Dim vbBook = From book In catalog.<Catalog>.<Book> _
                 Where book.<Title>.Value = _
                   "Developing Applications with Visual Basic .NET"
    
    vbBook(0).AddFirst(<Publisher>Microsoft Press</Publisher>)
    
    vbBook(0).Add(<PublishDate>2005-2-14</PublishDate>)
    
    vbBook(0).AddAfterSelf(<Book id="bk999"></Book>)
    
    vbBook(0).AddBeforeSelf(<Book id="bk000"></Book>)
    

    Im Folgenden werden Beispiele für ursprünglichen und geänderten XML-Code aus diesem Codebeispiel dargestellt.

    Source XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    
    Modified XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331">
        <Publisher>Microsoft Press</Publisher>
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
        <PublishDate>2005-2-14</PublishDate>
      </Book>
      <Book id="bk999"></Book>
    </Catalog>
    

So entfernen Sie ein Element oder ein Attribut aus einem XML-Literal

  • Um ein Element oder ein Attribut aus einem XML-Literal zu entfernen, rufen Sie einen Verweis auf das Element oder das Attribut ab, und rufen Sie die Remove-Methode auf, wie im folgenden Beispiel gezeigt.

    For Each book In From element In catalog.<Catalog>.<Book>
      book.Attributes("genre").Remove()
    Next
    
    For Each book In From element In catalog.<Catalog>.<Book> _
                     Where element.@id = "bk999"
      book.Remove()
    Next
    

    Im Folgenden werden Beispiele für ursprünglichen und geänderten XML-Code aus diesem Codebeispiel dargestellt.

    Source XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" genre="Computer" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331" genre="Computer" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
      <Book id="bk999"></Book>
    </Catalog>
    
    Modified XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book></Catalog>
    

    Um alle Elemente oder Attribute aus einem XML-Literal zu entfernen, rufen Sie einen Verweis auf das XML-Literal ab und die RemoveAll-Methode auf.

So ändern Sie ein XML-Literal

  • Um den Namen eines XML-Elements zu ändern, rufen Sie zunächst einen Verweis auf das Element ab. Sie können dann eine neues XElement-Objekt mit einem neuen Namen erstellen und das neue XElement-Objekt an die ReplaceWith-Methode des bestehenden XElement-Objekts übergeben.

    Wenn das zu ersetzende Element Unterelemente hat, die beibehalten werden müssen, legen Sie den Wert des neuen XElement-Objekts auf die Nodes-Eigenschaft des bestehende Elements fest. Dadurch wird der Wert des neuen Elements auf den inneren XML-Code des bestehenden Elements festgelegt. Andernfalls können Sie den Wert des neuen Elements auf die Value-Eigenschaft des vorhandenen Elements festlegen.

    Im folgenden Codebeispiel werden alle <Description>-Elemente durch ein <Abstract>-Element ersetzt. Der Inhalt des <Description>-Elements wird im neuen <Abstract>-Element beibehalten, wenn die NodesEigenschaft des <Description>-XElement-Objekts verwendet wird.

    For Each desc In From element In catalog.<Catalog>.<Book>.<Description>
      ' Replace and preserve inner XML.
      desc.ReplaceWith(<Abstract><%= desc.Nodes %></Abstract>)
    Next
    
    For Each price In From element In catalog.<Catalog>.<Book>.<Price>
      ' Replace with text value.
      price.ReplaceWith(<MSRP><%= price.Value %></MSRP>)
    Next
    

    Im Folgenden werden Beispiele für ursprünglichen und geänderten XML-Code aus diesem Codebeispiel dargestellt.

    Source XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
        <Description>
          An in-depth look at creating applications
          with <technology>XML</technology>. For 
          <audience>beginners</audience> or 
          <audience>advanced</audience> developers.
        </Description>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
        <Description>
          Get the expert insights, practical code samples, and best
          practices you need to advance your expertise with 
          <technology>Visual Basic .NET</technology>. 
          Learn how to create faster, more reliable applications
          based on professional, pragmatic guidance by today's top
          <audience>developers</audience>.
        </Description>
      </Book>
    </Catalog>
    
    Modified XML:
    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <MSRP>44.95</MSRP>    <Abstract>
          An in-depth look at creating applications
          with <technology>XML</technology>. For 
          <audience>beginners</audience> or 
          <audience>advanced</audience> developers.
        </Abstract>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <MSRP>45.95</MSRP>    <Abstract>
          Get the expert insights, practical code samples, and best
          practices you need to advance your expertise with 
          <technology>Visual Basic .NET</technology>. 
          Learn how to create faster, more reliable applications
          based on professional, pragmatic guidance by today's top
          <audience>developers</audience>.
        </Abstract>
      </Book>
    </Catalog>
    

Siehe auch

Aufgaben

Gewusst wie: Laden von XML aus einer Datei, einer Zeichenfolge oder einem Stream (Visual Basic)

Konzepte

Einführung in LINQ in Visual Basic

Weitere Ressourcen

Bearbeiten von XML in Visual Basic

XML in Visual Basic

LINQ in Visual Basic