Partilhar via


Como modificar literais XML (Visual Basic)

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

  1. Para modificar o valor de um literal XML, obtenha uma referência ao literal XML e defina a Value propriedade para o valor desejado.

    O exemplo de código a seguir atualiza o valor de todos os <elementos Price> em um documento XML.

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

    A seguir mostra 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>
    

    Nota

    A Value propriedade refere-se ao primeiro elemento XML em uma coleção. Se houver mais de um elemento com o mesmo nome em uma coleção, a definição da Value propriedade afetará apenas o primeiro elemento da coleção.

Para adicionar um atributo a um literal XML

  1. 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 de 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 ambas as 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))
    Next
    

    A seguir mostra 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 Propriedade do eixo do atributo XML.

Para adicionar um elemento a um literal XML

  1. 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 subelemento do elemento usando o Add método. Você pode adicionar um novo XElement objeto como o primeiro subelemento usando o AddFirst método.

    Para adicionar um novo elemento em um local específico em relação a outros subelementos, primeiro obtenha uma referência a um subelemento adjacente. Em seguida, você pode adicionar o novo XElement objeto antes do subelemento adjacente usando o AddBeforeSelf método. Você também pode adicionar o novo XElement objeto após o subelemento 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>)
    

    A seguir mostra 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

  1. Para remover um elemento ou um atributo de um literal XML, obtenha uma referência ao elemento ou atributo e chame o Remove mé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()
    Next
    

    A seguir mostra 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

  1. 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 subelementos 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 como o XML interno do elemento existente. Caso contrário, você pode definir o valor do novo elemento para a Value propriedade do elemento existente.

    O exemplo de código a seguir substitui todos os <elementos Description> por um <elemento Abstrato> . O conteúdo do <elemento Description> é preservado no novo <elemento Abstract> usando a Nodes<propriedade do objeto Description>XElement .

    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
    

    A seguir mostra 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>
    

Consulte também