【发布时间】:2017-09-06 18:27:42
【问题描述】:
我有这个 XML 文件:
<root>
<a>
<b>
<c>1</c>
<c>2</c>
<c>1</c>
<c>4</c>
</b>
</a>
<a>
<b>
<c>1</c>
<c>2</c>
<c>2</c>
<c>3</c>
</b>
</a>
</root>
我想将具有相同值的<c> 元素分组到另一个父节点<d> 下。所以输出应该是这样的:
<root>
<a>
<b>
<d>
<c>1</c>
<c>1</c>
</d>
<d>
<c>2</c>
</d>
<d>
<c>4</c>
</d>
</b>
</a>
<a>
<b>
<d>
<c>1</c>
</d>
<d>
<c>2</c>
<c>2</c>
</d>
<d>
<c>3</c>
</d>
</b>
</a>
我已经开始使用这段代码,但我只设法创建到父级。
'Create initial DOM
Set oXML = CreateObject("msxml2.DOMDocument.6.0")
oXML.Async = False
parInputXML = "<root> <a> <b> <c>1</c> <c>2</c> <c>1</c> <c>4</c> </b> </a> <a> <b> <c>1</c> <c>2</c> <c>2</c> <c>3</c> </b> </a> </root>"
oXML.LoadXML(parInputXML)
'Loop through nodes
For Each bNode In oXML.SelectNodes("/root/a/b")
For Each cNode In bNode.SelectNodes("./c")
'Add new node Spec
Set dNode = oXML.CreateElement("d")
bNode.AppendChild dNode
dNode.AppendChild cNode
'Add the cloned node
'Set tempChildNode = cNode.CloneNode(True)
'dNode.AppendChild tempChild
'Remove the old node
'cNode.ParentNode.RemoveChild(cNode)
Next
Next
MsgBox oXML.Xml
有人知道我可以如何将它们分组吗?我需要一个额外的循环吗?
【问题讨论】: