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