Freigeben über


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

Visual Basic bietet praktische Möglichkeiten zum Ändern von XML-Literalen. Sie können Elemente und Attribute hinzufügen oder löschen, und Sie können auch ein vorhandenes Element durch ein neues XML-Element ersetzen. Dieser Artikel enthält mehrere Beispiele zum Ändern eines vorhandenen XML-Literals.

So ändern Sie den Wert eines XML-Literals

  1. Um den Wert eines XML-Literals zu ändern, rufen Sie einen Verweis auf das XML-Literal ab, und legen Sie die Value-Eigenschaft auf den gewünschten Wert fest.

    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 finden Sie ein XML-Beispielquelldokument und geänderten XML-Code aus diesem Beispiel.

    Quell-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>
    

    Geänderter XML-Code:

    <?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 Sammlung. Wenn mehrere Elemente denselben Namen in einer Sammlung aufweisen, wirkt sich das Festlegen der Value-Eigenschaft nur auf das erste Element in der Sammlung aus.

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

  1. Um einem XML-Literal ein Attribut hinzuzufügen, rufen Sie zuerst einen Verweis auf das XML-Literal ab. Anschließend können Sie ein Attribut hinzufügen, indem Sie eine neue XML-Attributachseneigenschaft hinzufügen. Sie können dem XML-Literal auch ein neues XAttribute-Objekt hinzufügen, indem Sie die Add-Methode verwenden. Das folgende Beispiel zeigt beide Optionen.

    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 finden Sie ein XML-Beispielquelldokument und geänderten XML-Code aus diesem Beispiel.

    Quell-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>
    

    Geänderter XML-Code:

    <?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 zu Eigenschaften der XML-Attributachse finden Sie unter XML-Attributachseneigenschaft.

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

  1. Um einem XML-Literal ein Element hinzuzufügen, rufen Sie zuerst einen Verweis auf das XML-Literal ab. Anschließend können Sie ein neues XElement-Objekt als letztes Unterelement des Elements hinzufü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.

    Um ein neues Element an einer bestimmten Position relativ zu anderen Unterelementen hinzuzufügen, rufen Sie zuerst einen Verweis auf ein angrenzendes Unterelement ab. Anschließend können Sie das neue XElement-Objekt vor dem angrenzenden Unterelement mithilfe der AddBeforeSelf-Methode hinzufügen. Sie können das neue XElement-Objekt auch nach dem angrenzenden Unterelement hinzufügen, indem Sie die AddAfterSelf-Methode verwenden.

    Das folgende Beispiel veranschaulicht all diese Techniken.

    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 finden Sie ein XML-Beispielquelldokument und geänderten XML-Code aus diesem Beispiel.

    Quell-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>
    

    Geänderter XML-Code:

    <?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 Attribut aus einem XML-Literal

  1. Um ein Element oder ein Attribut aus einem XML-Literal zu entfernen, rufen Sie einen Verweis auf das Element oder 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 finden Sie ein XML-Beispielquelldokument und geänderten XML-Code aus diesem Beispiel.

    Quell-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>
    

    Geänderter XML-Code:

    <?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 rufen Sie die RemoveAll-Methode auf.

So ändern Sie ein XML-Literal

  1. Um den Namen eines XML-Elements zu ändern, rufen Sie zuerst einen Verweis auf das Element ab. Anschließend können Sie ein neues XElement-Objekt mit einem neuen Namen erstellen und das neue XElement-Objekt an die ReplaceWith-Methode des vorhandenen XElement-Objekts übergeben.

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

    Das folgende Codebeispiel ersetzt alle <Description>-Elemente durch ein <Abstract>-Element. Der Inhalt des Elements <Description> bleibt im neuen Element <Abstract> erhalten, indem die Nodes-Eigenschaft des Objekts <Description>XElement 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 finden Sie ein XML-Beispielquelldokument und geänderten XML-Code aus diesem Beispiel.

    Quell-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>
    

    Geänderter XML-Code:

    <?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