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 回答