Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Visual Basic fornece maneiras convenientes de modificar literais XML. Você pode adicionar ou excluir elementos e atributos e também pode substituir um elemento existente por um novo elemento XML. Este tópico fornece vários exemplos de como modificar um literal XML existente.
Para modificar o valor de um literal XML
Para modificar o valor de um literal XML, obtenha uma referência ao literal XML e defina a
Valuepropriedade como o valor desejado.O exemplo de código a seguir atualiza o valor de todos os
<Price>elementos em um documento XML.For Each book In From element In catalog.<Catalog>.<Book> book.<Price>.Value = (book.<Price>.Value * 1.05).ToString("#.00") NextO exemplo a seguir mostra o XML de origem de exemplo e XML modificado deste exemplo de código.
XML de origem:
<?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>XML modificado:
<?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>Observação
A
Valuepropriedade refere-se ao primeiro elemento XML em uma coleção. Se houver mais de um elemento que tenha o mesmo nome em uma coleção, definir aValuepropriedade afetará apenas o primeiro elemento da coleção.
Para adicionar um atributo a um literal XML
Para adicionar um atributo a um literal XML, primeiro obtenha uma referência ao literal XML. Em seguida, você pode adicionar um atributo adicionando uma nova propriedade do eixo de atributo XML. Você também pode adicionar um novo XAttribute objeto ao literal XML usando o Add método. O exemplo a seguir mostra as duas opções.
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)) NextO exemplo a seguir mostra o XML de origem de exemplo e XML modificado deste exemplo de código.
XML de origem:
<?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>XML modificado:
<?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>Para obter mais informações sobre as propriedades do eixo do atributo XML, consulte A Propriedade do Eixo de Atributo XML.
Para adicionar um elemento a um literal XML
Para adicionar um elemento a um literal XML, primeiro obtenha uma referência ao literal XML. Em seguida, você pode adicionar um novo XElement objeto como o último subconjunto do elemento usando o Add método. Você pode adicionar um novo XElement objeto como o primeiro subconjunto usando o AddFirst método.
Para adicionar um novo elemento em um local específico em relação a outros sub-elementos, primeiro obtenha uma referência a um subconjunto adjacente. Em seguida, você pode adicionar o novo XElement objeto antes do subconjunto adjacente usando o AddBeforeSelf método. Você também pode adicionar o novo XElement objeto após o subconjunto adjacente usando o AddAfterSelf método.
O exemplo a seguir mostra exemplos de cada uma dessas técnicas.
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>)O exemplo a seguir mostra o XML de origem de exemplo e XML modificado deste exemplo de código.
XML de origem:
<?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>XML modificado:
<?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>
Para remover um elemento ou atributo de um literal XML
Para remover um elemento ou um atributo de um literal XML, obtenha uma referência ao elemento ou atributo e chame o
Removemétodo, conforme mostrado no exemplo a seguir.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() NextO exemplo a seguir mostra o XML de origem de exemplo e XML modificado deste exemplo de código.
XML de origem:
<?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>XML modificado:
<?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>Para remover todos os elementos ou atributos de um literal XML, obtenha uma referência ao literal XML e chame o RemoveAll método.
Para modificar um literal XML
Para alterar o nome de um elemento XML, primeiro obtenha uma referência ao elemento. Em seguida, você pode criar um novo XElement objeto que tenha um novo nome e passar o novo XElement objeto para o ReplaceWith método do objeto existente XElement .
Se o elemento que você está substituindo tiver sub-elementos que devem ser preservados, defina o valor do novo XElement objeto como a Nodes propriedade do elemento existente. Isso definirá o valor do novo elemento para o XML interno do elemento existente. Caso contrário, você pode definir o valor do novo elemento para a
Valuepropriedade do elemento existente.O exemplo de código a seguir substitui todos os
<Description>elementos por um<Abstract>elemento. O conteúdo do<Description>elemento é preservado no novo<Abstract>elemento usando a Nodes propriedade do<Description>XElement objeto.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>) NextO exemplo a seguir mostra o XML de origem de exemplo e XML modificado deste exemplo de código.
XML de origem:
<?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>XML modificado:
<?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>