Udostępnij za pośrednictwem


Jak: modyfikowanie literały XML (Visual Basic)

Visual Basiczapewnia wygodny sposoby modyfikowania literały XML.Można dodawać lub usuwać elementy i atrybuty, a nowy element XML można również zastąpić istniejącego elementu.Ten temat zawiera kilka przykładów takich jak zmodyfikować istniejące literał XML.

Aby zmodyfikować wartość literału XML

  • Aby zmodyfikować wartość literał XML, uzyskania odwołania do XML literał i ustaw Value właściwość żądaną wartość.

    Poniższy przykład kodu aktualizuje wartość wszystkich <Price> elementy w dokumencie XML.

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

    Poniżej pokazuje przykładowego źródła XML i zmodyfikowane XML w tym przykładzie kodu.

    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>
    

    [!UWAGA]

    Value Właściwość odnosi się do pierwszego elementu XML w kolekcji.Jeśli istnieje więcej niż jeden element, który ma taką samą nazwę kolekcji, ustawienie Value właściwość dotyczy tylko pierwszy element w kolekcji.

Aby dodać atrybut do literał XML

  • Aby dodać atrybut do literał XML, należy najpierw uzyskać odniesienie do literał XML.Następnie można dodać atrybut, dodając nową właściwość osi atrybut XML.Można również dodać nowy XAttribute obiektu XML literału za pomocą Add metody.W poniższym przykładzie przedstawiono obie opcje.

    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
    

    Poniżej pokazuje przykładowego źródła XML i zmodyfikowane XML w tym przykładzie kodu.

    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>
    

    Aby uzyskać więcej informacji o właściwości osi atrybutu XML, zobacz Właściwość osi atrybut XML (Visual Basic).

Aby dodać element do literał XML

  • Aby dodać element do literał XML, należy najpierw uzyskać odniesienie do literał XML.Następnie można dodać nowy XElement obiektu jako ostatniego elementu podrzędnego elementu za pomocą Add metody.Można dodać nowy XElement obiektu jako pierwszego elementu podrzędnego przy użyciu AddFirst metody.

    Aby dodać nowy element w określonej lokalizacji względem innych podrzędne, należy najpierw uzyskać odwołania do sąsiadujących elementu podrzędnego.Następnie można dodać nowy XElement obiekt przed sąsiadujących elementu podrzędnego przy użyciu AddBeforeSelf metody.Można także dodawać nowe XElement obiektu po sąsiadujących elementu podrzędnego przy użyciu AddAfterSelf metody.

    W poniższym przykładzie przedstawiono przykłady każdego z tych technik.

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

    Poniżej pokazuje przykładowego źródła XML i zmodyfikowane XML w tym przykładzie kodu.

    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>
    

Aby usunąć element lub atrybut z literał XML

  • Aby usunąć element lub atrybut z literał XML, uzyskania odwołania do elementu lub atrybutu i wywołanie Remove metody, jak pokazano w poniższym przykładzie.

    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
    

    Poniżej pokazuje przykładowego źródła XML i zmodyfikowane XML w tym przykładzie kodu.

    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>
    

    Aby usunąć wszystkie elementy lub atrybuty z literał XML, uzyskać odwołania do literał XML i wywołać RemoveAll metody.

Aby zmodyfikować literał XML

  • Aby zmienić nazwę elementu XML, należy najpierw uzyskać odwołania do elementu.Można następnie utworzyć nowy XElement obiekt, który ma nową nazwę i przekazywać nowe XElement obiektu do ReplaceWith metoda istniejących XElement obiektu.

    Jeśli element, który chcesz zamienić ma elementy podrzędne, które muszą być zachowane, należy ustawić wartość nowej XElement obiektu do Nodes właściwość elementu istniejącego.Spowoduje to ustawienie wartości nowy element wewnętrzny XML elementu istniejącego.W przeciwnym razie można ustawić wartość nowego elementu do Value właściwość elementu istniejącego.

    Poniższy przykład kodu zastępuje wszystkie <Description> elementy z <Abstract> element.Zawartość <Description> element jest zachowywany w nowych <Abstract> element przy użyciu Nodes właściwość <Description> XElementobiekt.

    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
    

    Poniżej pokazuje przykładowego źródła XML i zmodyfikowane XML w tym przykładzie kodu.

    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>
    

Zobacz też

Zadania

Jak: ładowanie pliku XML z pliku, ciągu lub strumienia (Visual Basic)

Koncepcje

Wprowadzenie do LINQ w języku Visual Basic

Inne zasoby

Manipulowanie XML w języku Visual Basic

XML w języku Visual Basic

LINQ w języku Visual Basic