방법: XML 리터럴 수정(Visual Basic)
업데이트: 2007년 11월
Visual Basic에서는 XML 리터럴을 수정하는 편리한 방법을 제공합니다. 요소와 속성을 추가하거나 삭제할 수 있으며 기존 요소를 새 XML 요소로 바꿀 수도 있습니다. 이 항목에서는 기존 XML 리터럴을 수정하는 방법의 몇 가지 예제를 보여 줍니다.
XML 리터럴의 값을 수정하려면
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입니다.
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>
참고: Value 속성은 컬렉션에서 첫 번째 XML 요소를 참조합니다. 컬렉션에서 이름이 같은 요소가 두 개 이상인 경우 Value 속성을 설정하면 컬렉션의 첫 번째 요소에만 영향을 미칩니다.
XML 리터럴에 특성을 추가하려면
XML 리터럴에 특성을 추가하려면 먼저 XML 리터럴에 대한 참조를 가져옵니다. 그런 다음 XML 특성 축 속성을 새로 추가하여 특성을 추가할 수 있습니다. 또한 Add 메서드를 사용하여 새 XAttribute 개체를 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입니다.
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>
XML 특성 축 속성을 사용하는 방법에 대한 자세한 내용은 XML 특성 축 속성을 참조하십시오.
XML 리터럴에 요소를 추가하려면
XML 리터럴에 요소를 추가하려면 먼저 XML 리터럴에 대한 참조를 가져옵니다. 그런 다음 Add 메서드를 사용하여 새 XElement 개체를 요소의 마지막 하위 요소로 추가할 수 있습니다. AddFirst 메서드를 사용하여 새 XElement 개체를 첫 번째 하위 요소로 추가할 수 있습니다.
다른 하위 요소에 상대적인 특정 위치에 새 요소를 추가하려면 먼저 인접 하위 요소에 대한 참조를 가져옵니다. 그런 다음 AddBeforeSelf 메서드를 사용하여 새 XElement 개체를 인접한 하위 요소 앞에 추가할 수 있습니다. 또한 AddAfterSelf 메서드를 사용하여 새 XElement 개체를 인접한 하위 요소 뒤에 추가할 수 있습니다.
다음 예제에서는 이러한 기술 각각에 대한 예를 보여 줍니다.
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입니다.
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>
XML 리터럴에서 요소나 특성을 제거하려면
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입니다.
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>
XML 리터럴에서 모든 요소나 특성을 제거하려면 XML 리터럴에 대한 참조를 가져오고 RemoveAll 메서드를 호출합니다.
XML 리터럴을 수정하려면
XML 요소의 이름을 변경하려면 먼저 요소에 대한 참조를 가져옵니다. 그런 다음 새 이름의 새 XElement 개체를 만들고 새 XElement 개체를 기존 XElement 개체의 ReplaceWith 메서드에 전달합니다.
바꾸는 요소에 유지해야 할 하위 요소가 있는 경우 새 XElement 개체의 값을 기존 요소의 Nodes 속성으로 설정합니다. 이렇게 하면 새 요소의 값이 기존 요소의 내부 XML로 설정됩니다. 그렇지 않은 경우 새 요소의 값을 기존 요소의 Value 속성으로 설정할 수 있습니다.
다음 코드 예제에서는 모든 <Description> 요소를 <Abstract> 요소로 바꿉니다. <Description> XElement 개체의 Nodes 속성을 사용하여 <Description> 요소의 내용을 새 <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입니다.
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>
참고 항목
작업
방법: 파일, 문자열 또는 스트림에서 XML 로드(Visual Basic)