Sdílet prostřednictvím


Jak: Upravit XML literály (Visual Basic)

Visual Basicpraktické způsoby upravit XML literály.Můžete přidávat nebo odstraňovat prvky a atributy a můžete také nahradit existující prvek nový prvek XML.Toto téma obsahuje několik příkladů, jak upravit existující literál XML.

Změňte hodnotu literálu XML

  • Chcete-li upravit hodnotu literálu XML získat odkaz na XML literálu a nastavené Value na požadovanou hodnotu vlastnosti.

    Následující příklad kódu aktualizuje hodnotu všech <Price> prvky 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í zobrazí vzorek zdroj XML a upraven z tohoto příkladu kódu XML.

    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>
    

    [!POZNÁMKA]

    Value Vlastnost odkazuje na první prvek XML v kolekci.Pokud existuje více než jeden prvek, který má stejný název kolekce, nastavení Value vlastnost ovlivňuje pouze první prvek v kolekci.

Přidání atributu k literál XML

  • Chcete-li přidat atribut literál XML, nejprve získejte odkaz na literál XML.Poté můžete přidat atribut přidáním nové vlastnosti osy atribut XML.Můžete také přidat nový XAttribute XML pomocí literálu objektu Add metoda.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í zobrazí vzorek zdroj XML a upraven z tohoto příkladu kódu XML.

    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>
    

    Další informace o vlastnosti osy atribut XML naleznete v Vlastnost osy atribut XML (Visual Basic).

Přidání prvku do literál XML

  • Chcete-li přidat prvek literál XML, nejprve získejte odkaz na literál XML.Poté můžete přidat nový XElement jako poslední dílčí prvek prvku pomocí objektu Add metoda.Můžete přidat nový XElement jako první dílčí prvek pomocí objektu AddFirst metoda.

    Chcete-li přidat nový prvek v určitém umístění vzhledem k dispozici jiné, nejprve získejte odkaz na sousední dílčí prvek.Poté můžete přidat nové XElement před sousedící dílčí prvek pomocí objektu AddBeforeSelf metoda.Můžete také přidat nové XElement po sousedních dílčí prvek pomocí objektu AddAfterSelf metoda.

    Následující příklad ukazuje příklady těchto postupů.

    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í zobrazí vzorek zdroj XML a upraven z tohoto příkladu kódu XML.

    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>
    

Odebrat prvek nebo atribut z literál XML

  • Chcete-li odebrat z literál XML element nebo atribut, získat odkaz na element nebo atribut a volání Remove metodou, jak ukazuje následující příklad.

    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í zobrazí vzorek zdroj XML a upraven z tohoto příkladu kódu XML.

    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>
    

    Chcete-li odebrat všechny elementy nebo atributy z literál XML, získat odkaz na literál XML a volání RemoveAll metoda.

Úprava literál XML

  • Chcete-li změnit název prvku XML nejprve získejte odkaz na element.Poté můžete vytvořit nový XElement objekt, který má nový název a předat nové XElement k objektu ReplaceWith metodu existující XElement objektu.

    Pokud element, který nahrazujete dispozici, které je třeba zachovat, nastavte hodnotu nového XElement k objektu Nodes vlastnosti existujícího elementu.Tím nastavíte hodnotu nového prvku do vnitřní XML existujícího elementu.Jinak můžete nastavit hodnotu nový prvek Value vlastnosti existujícího elementu.

    Následující příklad kódu nahradí všechny <Description> prvky s <Abstract> prvek.Obsah <Description> prvek zachován v nových <Abstract> pomocí prvku Nodes vlastnost <Description> XElementobjekt.

    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í zobrazí vzorek zdroj XML a upraven z tohoto příkladu kódu XML.

    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>
    

Viz také

Úkoly

Jak: načtení XML ze souboru, řetězec nebo proud (Visual Basic)

Koncepty

Úvod do jazyka Visual Basic LINQ

Další zdroje

Práce s XML v jazyce Visual Basic

XML v jazyce Visual Basic

LINQ v jazyce Visual Basic