1

vb.netを使用してxmlDocumentのノードセットの親ノードを追加または指定する方法。

私は次のxmlノードを持っています

<books>
   <title>title</title>
   <isbn>123456</isbn>
   <surname>surname</surname>
   <givenname>givenname</givenname>
</books>

ここで、次のように、の親ノードを追加<author>します。<surname><givenname>

 <books>
   <title>title</title>
   <isbn>123456</isbn>
   <author>
      <surname>surname</surname>
      <givenname>givenname</givenname>
   </author>
 </books>

誰かがvb.netのxmlDocumentでそれを行う方法を教えてもらえますか?

4

2 に答える 2

1

を呼び出してノードを識別し、ツリーから削除して新しいノードXPathSelectElementsに追加できます。author


例:

Dim xml = <books>
            <title>title</title>
            <isbn>123456</isbn>
            <surname>surname</surname>
            <givenname>givenname</givenname>
          </books>

Dim author = <author />
xml.Add(author)
For Each node in xml.XPathSelectElements("./givenname|./surname")
    node.Remove()
    author.Add(node)
Next
于 2012-08-21T07:10:19.307 に答える
1

必要がある:

  1. 変更する親ノード(本)を取得します。
  2. 新しい子要素(作成者)を追加します。
  3. 移動する子要素(名前と名)を取得します。
  4. 移動するノードごとに、その親ノード(ブック)からノードを削除してから、新しい親ノード(作成者)に子として追加します。

例えば:

Dim doc As New XmlDocument()
doc.Load(xmlFilePath)
Dim bookToModify As XmlNode = doc.SelectSingleNode("/books")
Dim author As XmlNode = doc.CreateElement("author")
bookToModify.AppendChild(author)
For Each node As XmlNode In bookToModify.SelectNodes("surname | givenname")
    node.ParentNode.RemoveChild(node)
    author.AppendChild(node)
Next
于 2012-08-21T12:09:54.433 に答える