Partager via


Comment : modifier des littéraux XML (Visual Basic)

Mise à jour : novembre 2007

Visual Basic offre des moyens pratiques de modifier des littéraux XML. Vous pouvez ajouter ou supprimer des éléments et des attributs ; vous pouvez également remplacer un élément existant par un nouvel élément XML. Cette rubrique fournit plusieurs exemples de modification d'un littéral XML existant.

Pour modifier la valeur d'un littéral XML

  • Pour modifier la valeur d'un littéral XML, obtenez une référence au littéral XML et affectez à la propriété Value la valeur désirée.

    L'exemple de code suivant met à jour la valeur de tous les éléments <Price> dans un document XML.

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

    Voici des exemples de XML source et de XML modifié issus de cet exemple de code.

    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>
    
    Remarque :

    La propriété Value fait référence au premier élément XML d'une collection. Si plusieurs éléments possèdent le même nom dans une collection, la définition de la propriété Value affecte uniquement le premier élément de la collection.

Pour ajouter un attribut à un littéral XML

  • Pour ajouter un attribut à un littéral XML, obtenez d'abord une référence au littéral XML. Vous pouvez ensuite ajouter un attribut en ajoutant une nouvelle propriété d'axe d'attribut XML. Vous pouvez également ajouter un nouvel objet XAttribute au littéral XML en utilisant la méthode Add. L'exemple suivant présente les deux options.

    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
    

    Voici des exemples de XML source et de XML modifié issus de cet exemple de code.

    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>
    

    Pour plus d'informations sur les propriétés d'axe d'attribut XML, consultez Propriété d'axe d'attribut XML.

Pour ajouter un élément à un littéral XML

  • Pour ajouter un élément à un littéral XML, obtenez d'abord une référence au littéral XML. Vous pouvez ensuite ajouter un nouvel objet XElement comme dernier sous-élément de l'élément à l'aide de la méthode Add. Vous pouvez ajouter un nouvel objet XElement comme premier sous-élément à l'aide de la méthode AddFirst.

    Pour ajouter un nouvel élément dans un emplacement spécifique relatif à d'autres sous-éléments, obtenez d'abord une référence à un sous-élément adjacent. Vous pouvez ensuite ajouter le nouvel objet XElement avant le sous-élément adjacent à l'aide de la méthode AddBeforeSelf. Vous pouvez également ajouter ensuite le nouvel objet XElement après le sous-élément adjacent à l'aide de la méthode AddAfterSelf.

    L'exemple suivant présente des exemples de chacune de ces techniques.

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

    Voici des exemples de XML source et de XML modifié issus de cet exemple de code.

    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>
    

Pour supprimer un élément ou un attribut d'un littéral XML

  • Pour supprimer un élément ou un attribut d'un littéral XML, obtenez une référence à l'élément ou à l'attribut et appelez la méthode Remove, comme illustré dans l'exemple suivant.

    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
    

    Voici des exemples de XML source et de XML modifié issus de cet exemple de code.

    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>
    

    Pour supprimer tous les éléments ou attributs d'un littéral XML, obtenez une référence au littéral XML et appelez la méthode RemoveAll.

Pour modifier un littéral XML

  • Pour modifier le nom d'un élément XML, obtenez d'abord une référence à l'élément. Vous pouvez ensuite créer un nouvel objet XElement qui possède un nouveau nom et passer le nouvel objet XElement à la méthode ReplaceWith de l'objet XElement existant.

    Si l'élément que vous remplacez possède des sous-éléments devant être conservés, affectez au nouvel objet XElement la valeur de la propriété Nodes de l'élément existant. Cela affectera au nouvel élément la valeur du code XML interne de l'élément existant. Sinon, vous pouvez affecter au nouvel élément la valeur de la propriété Value de l'élément existant.

    L'exemple de code suivant remplace tous les éléments <Description> par un élément <Abstract>. Le contenu de l'élément <Description> est conservé dans le nouvel élément <Abstract> à l'aide de la propriété Nodes de l'objet XElement <Description>.

    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
    

    Voici des exemples de XML source et de XML modifié issus de cet exemple de code.

    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>
    

Voir aussi

Tâches

Comment : charger du code XML à partir d'un fichier, d'une chaîne ou d'un flux (Visual Basic)

Concepts

Introduction à LINQ dans Visual Basic

Autres ressources

Manipulation de code XML dans Visual Basic

XML en Visual Basic

LINQ en Visual Basic