如何使用vb.net为xmlDocument中的一组节点添加或赋予父节点。
我有以下xml节点
<books>
<title>title</title>
<isbn>123456</isbn>
<surname>surname</surname>
<givenname>givenname</givenname>
</books>
现在我想为<surname>
和<givenname>
添加父节点<author>
,如下所示。
<books>
<title>title</title>
<isbn>123456</isbn>
<author>
<surname>surname</surname>
<givenname>givenname</givenname>
</author>
</books>
有人能告诉我如何在vb.net中的xmlDocument中完成它吗?
您需要:
- 获取要修改的父节点(图书)
- 添加新的子元素(author)
- 获取要移动的子元素(姓氏和给定名称)
- 对于要移动的每个节点,请将其从其父节点(图书)中删除,然后将其作为子节点添加到新的父节点(作者)中
例如:
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
您可以通过调用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