Postupy: Změna literálů XML (Visual Basic)
Visual Basic poskytuje praktické způsoby úprav literálů XML. Můžete přidat nebo odstranit elementy a atributy a můžete také nahradit existující prvek novým elementem XML. Toto téma obsahuje několik příkladů, jak upravit existující literál XML.
Úprava hodnoty literálu XML
Chcete-li upravit hodnotu literálu XML, získejte odkaz na literál XML a nastavte
Value
vlastnost na požadovanou hodnotu.Následující příklad kódu aktualizuje hodnotu všech elementů <Price> v dokumentu XML.
For Each book In From element In catalog.<Catalog>.<Book> book.<Price>.Value = (book.<Price>.Value * 1.05).ToString("#.00") Next
Následující příklad ukazuje ukázkový zdrojový kód XML a upravený kód XML z tohoto příkladu kódu.
Zdrojový KÓD 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>
Změněný KÓD 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>
Poznámka:
Vlastnost
Value
odkazuje na první element XML v kolekci. Pokud existuje více než jeden prvek, který má stejný název v kolekci, nastaveníValue
vlastnosti ovlivní pouze první prvek v kolekci.
Přidání atributu do literálu XML
Chcete-li přidat atribut do literálu XML, nejprve získejte odkaz na literál XML. Atribut pak můžete přidat přidáním nové vlastnosti osy atributů XML. Pomocí metody můžete také přidat nový XAttribute objekt do literálu Add XML. Následující příklad ukazuje obě možnosti.
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
Následující příklad ukazuje ukázkový zdrojový kód XML a upravený kód XML z tohoto příkladu kódu.
Zdrojový KÓD 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>
Změněný KÓD 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>
Další informace o vlastnostech osy atributů XML naleznete v tématu Xml Atribut Axis Vlastnost.
Přidání elementu do literálu XML
Chcete-li přidat element do literálu XML, nejprve získejte odkaz na literál XML. Pak můžete přidat nový XElement objekt jako poslední dílčí prvek elementu pomocí Add metody. Pomocí metody můžete přidat nový XElement objekt jako první dílčí prvek AddFirst .
Pokud chcete přidat nový prvek do konkrétního umístění vzhledem k ostatním dílčím prvkům, nejprve získejte odkaz na sousední dílčí prvek. Pomocí metody pak můžete přidat nový XElement objekt před sousední dílčí prvek AddBeforeSelf . Pomocí metody můžete také přidat nový XElement objekt za sousední dílčí prvek AddAfterSelf .
Následující příklad ukazuje příklady každé z těchto technik.
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>)
Následující příklad ukazuje ukázkový zdrojový kód XML a upravený kód XML z tohoto příkladu kódu.
Zdrojový KÓD 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>
Změněný KÓD 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>
Odebrání elementu nebo atributu z literálu XML
Chcete-li odebrat prvek nebo atribut z literálu XML, získejte odkaz na element nebo atribut a zavolejte metodu
Remove
, jak je znázorněno v následujícím příkladu.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
Následující příklad ukazuje ukázkový zdrojový kód XML a upravený kód XML z tohoto příkladu kódu.
Zdrojový KÓD 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>
Změněný KÓD 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>
Chcete-li odebrat všechny elementy nebo atributy z literálu XML, získejte odkaz na literál XML a zavolejte metodu RemoveAll .
Úprava literálu XML
Chcete-li změnit název elementu XML, nejprve získejte odkaz na element. Pak můžete vytvořit nový XElement objekt, který má nový název, a předat nový XElement objekt metodě ReplaceWith existujícího XElement objektu.
Pokud prvek, který nahrazujete, má dílčí prvky, které musí být zachovány, nastavte hodnotu nového XElement objektu Nodes na vlastnost existující prvek. Tím se nastaví hodnota nového elementu na vnitřní XML existujícího elementu. V opačném případě můžete nastavit hodnotu nového prvku na
Value
vlastnost existujícího elementu.Následující příklad kódu nahrazuje všechny <elementy Description> elementu <Abstraktní> element. <Obsah prvku Description> je zachován v novém <Abstraktní> element pomocí Nodes vlastnosti Description>XElement objektu<.
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
Následující příklad ukazuje ukázkový zdrojový kód XML a upravený kód XML z tohoto příkladu kódu.
Zdrojový KÓD 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>
Změněný KÓD 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>