다음을 통해 공유


방법: 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 리터럴에 대한 참조를 가져옵니다. 그런 다음 메서드를 사용하여 XElementAdd 개체를 요소의 마지막 하위 요소로 추가할 수 있습니다. 메서드를 사용하여 XElementAddFirst 개체를 첫 번째 하위 요소로 추가할 수 있습니다.

    다른 하위 요소를 기준으로 특정 위치에 새 요소를 추가하려면 먼저 인접한 하위 요소에 대한 참조를 가져옵니다. 그런 다음 메서드를 사용하여 인접한 하위 요소 앞에 새 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 요소의 <내용은, Description><> 개체의 Nodes 속성을 사용하여, 새 <Abstract> 요소에 보존됩니다.

    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>
    

참고하십시오