Dela via


Gör så här: Ändra XML-literaler (Visual Basic)

Visual Basic tillhandahåller praktiska sätt att ändra XML-literaler. Du kan lägga till eller ta bort element och attribut, och du kan även ersätta ett befintligt element med ett nytt XML-element. Det här avsnittet innehåller flera exempel på hur du ändrar en befintlig XML-literal.

Ändra värdet för en XML-literal

  1. Om du vill ändra värdet för en XML-literal hämtar du en referens till XML-literalen Value och anger egenskapen till önskat värde.

    I följande kodexempel uppdateras värdet för alla <priselement> i ett XML-dokument.

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

    Följande visar exempelkällans XML och ändrade XML från det här kodexemplet.

    Käll-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>
    

    Ändrad 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>
    

    Kommentar

    Egenskapen Value refererar till det första XML-elementet i en samling. Om det finns fler än ett element som har samma namn i en samling påverkar inställningen Value av egenskapen endast det första elementet i samlingen.

Så här lägger du till ett attribut i en XML-literal

  1. Om du vill lägga till ett attribut i en XML-literal hämtar du först en referens till XML-literalen. Du kan sedan lägga till ett attribut genom att lägga till en ny XML-attributaxelegenskap. Du kan också lägga till ett nytt XAttribute objekt i XML-literalen Add med hjälp av metoden . I följande exempel visas båda alternativen.

    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
    

    Följande visar exempelkällans XML och ändrade XML från det här kodexemplet.

    Käll-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>
    

    Ändrad 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>
    

    Mer information om egenskaper för XML-attributaxel finns i EGENSKAPEN XML-attributaxel.

Så här lägger du till ett element i en XML-literal

  1. Om du vill lägga till ett element i en XML-literal hämtar du först en referens till XML-literalen. Du kan sedan lägga till ett nytt XElement objekt som det sista underelementet i elementet med hjälp Add av metoden . Du kan lägga till ett nytt XElement objekt som det första underelementet med hjälp AddFirst av metoden .

    Om du vill lägga till ett nytt element på en specifik plats i förhållande till andra underelement hämtar du först en referens till ett intilliggande underelement. Du kan sedan lägga till det nya XElement objektet före det intilliggande underelementet med hjälp AddBeforeSelf av metoden . Du kan också lägga till det nya XElement objektet efter det intilliggande underelementet med hjälp AddAfterSelf av metoden .

    I följande exempel visas exempel på var och en av dessa tekniker.

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

    Följande visar exempelkällans XML och ändrade XML från det här kodexemplet.

    Käll-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>
    

    Ändrad 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>
    

Ta bort ett element eller attribut från en XML-literal

  1. Om du vill ta bort ett element eller ett attribut från en XML-literal hämtar du en referens till elementet eller attributet och anropar Remove metoden, enligt följande exempel.

    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
    

    Följande visar exempelkällans XML och ändrade XML från det här kodexemplet.

    Käll-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>
    

    Ändrad 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>
    

    Om du vill ta bort alla element eller attribut från en XML-literal hämtar du en referens till XML-literalen och anropar RemoveAll metoden.

Ändra en XML-literal

  1. Om du vill ändra namnet på ett XML-element hämtar du först en referens till elementet. Du kan sedan skapa ett nytt XElement objekt som har ett nytt namn och skicka det nya XElement objektet till ReplaceWith metoden för det befintliga XElement objektet.

    Om det element som du ersätter har underelement som måste bevaras anger du värdet för det nya XElement objektet till Nodes egenskapen för det befintliga elementet. Detta anger värdet för det nya elementet till den inre XML-koden för det befintliga elementet. Annars kan du ange värdet för det nya elementet till Value egenskapen för det befintliga elementet.

    I följande kodexempel ersätts alla <beskrivningselement> med ett <abstrakt> element. Innehållet i elementet <Beskrivning> bevaras i det nya <abstrakta> elementet med hjälp Nodes av <egenskapen för objektet Beskrivning>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
    

    Följande visar exempelkällans XML och ändrade XML från det här kodexemplet.

    Käll-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>
    

    Ändrad 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>
    

Se även