共用方式為


如何:修改 XML 常值 (Visual Basic)

Visual Basic 提供方便的方式來修改 XML 常值。 您可以新增或刪除元素和屬性,也可以以新的 XML 元素取代現有的專案。 本主題提供數個如何修改現有 XML 常值的範例。

修改 XML 常值的值

  1. 若要修改 XML 常值的值,請取得 XML 常值的參考,並將 屬性設定 Value 為所需的值。

    下列程式代碼範例會更新 XML 檔中所有 <Price> 元素的值。

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

    以下顯示此程式碼範例的範例來源 XML 和已修改的 XML。

    來源 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>
    

    變更過的 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>
    

    備註

    Value 屬性指的是集合中的第一個 XML 元素。 如果集合中有多個具有相同名稱的專案,則設定 Value 屬性只會影響集合中的第一個專案。

將屬性新增至 XML 字面值

  1. 若要將屬性加入 XML 常值,請先取得對 XML 常值的參照。 然後,您可以藉由新增 XML 屬性軸的屬性來新增屬性。 您也可以使用 XAttribute 方法,將新的 Add 物件新增至 XML 常值。 下列範例顯示這兩個選項。

    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
    

    以下顯示此程式碼範例的範例來源 XML 和已修改的 XML。

    來源 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>
    

    變更過的 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>
    

    如需 XML 屬性軸屬性的詳細資訊,請參閱 XML 屬性軸屬性

將元素增加到 XML 文字值

  1. 若要將元素新增至 XML 字面值,請先取得 XML 字面值的參考。 然後,您可以使用 方法,將新的 XElement 物件新增為項目的最後一個子元素 Add 。 您可以使用 方法,將新的 XElement 物件新增為第一個子元素 AddFirst

    若要在特定位置加入相對於其他子元素的新元素,請先取得相鄰子元素的參考。 接著,您可以使用 XElement 方法,在相鄰的子元素之前加入新的 AddBeforeSelf 物件。 您也可以使用 XElement 方法,在相鄰的子元素後面加入新的 AddAfterSelf 物件。

    下列範例顯示上述每個技術的範例。

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

    以下顯示此程式碼範例的範例來源 XML 和已修改的 XML。

    來源 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>
    

    變更過的 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>
    

從 XML 常值移除元素或屬性

  1. 若要從 XML 文本常值中移除元素或屬性,請取得元素或屬性的參考並呼叫 Remove 方法,如下列範例所示。

    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
    

    以下顯示此程式碼範例的範例來源 XML 和已修改的 XML。

    來源 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>
    

    變更過的 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>
    

    若要從 XML 常值中移除所有項目或屬性,請取得 XML 常值的參考,並呼叫 RemoveAll 方法。

若要修改 XML 文字

  1. 若要變更 XML 項目的名稱,請先取得項目的參考。 然後,您可以建立具有新名稱的新 XElement 物件,並將新的 XElement 對象傳遞至 ReplaceWith 現有 XElement 物件的方法。

    如果您要取代的專案具有必須保留的子專案,請將新 XElement 物件的值設定為 Nodes 現有項目的屬性。 這會將新元素的值設定為現有元素的內部 XML。 否則,您可以將新元素的值設定為 Value 現有項目的屬性。

    下列程式代碼範例會將所有 <Description> 元素取代為 <Abstract> 元素。 Description 元素的內容<會被保留在新的 >Abstract< 元素中,通過使用 >DescriptionNodes< 對象的屬性>。

    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
    

    以下顯示此程式碼範例的範例來源 XML 和已修改的 XML。

    來源 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>
    

    變更過的 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>
    

另請參閱