我想知道如何在VBA(Word宏)中读取“changeHistory”节点的子节点
<?xml version="1.0"?>
<RequirementInfo>
<V_CUSTMER>abc</V_CUSTMER>
<changeHistory>
<ver>
<versionNo>1.0</versionNo>
<vDate>12/11/2010</vDate>
<desc>desc1</desc>
</ver>
<ver>
<versionNo>2.0</versionNo>
<vDate>12/11/2011</vDate>
<desc>desc2</desc>
</ver>
<ver>
<versionNo>3.0</versionNo>
<vDate>12/11/2012</vDate>
<desc>desc3</desc>
</ver>
</changeHistory>
</RequirementInfo>
我正在使用下面的代码来读取根节点,但我不知道如何进入子节点。
For Each curNode In xmlDoc.ChildNodes
If curNode.NodeType = 1 Then ' only look at type=NODE_ELEMENT
For I = 1 To curNode.ChildNodes.Length
nodeName = curNode.ChildNodes(I - 1).nodeName
nodeText = curNode.ChildNodes(I - 1).Text
Debug.Print nodeName
If nodeName = "changeHistory" Then
Else
ActiveDocument.FormFields(nodeName).Result = nodeText
End If
Next
End If
Next
答案 0 :(得分:1)
XPath是在XML文档中定位节点的工具。
selectSingleNode()
和selectNodes()
是允许您使用XPath的DOM API函数。
例如:
Set ver = xmlDoc.selectSingleNode("//changeHistory/ver[versionNo = '1.0']")
For Each detail In ver.selectNodes("*")
ActiveDocument.FormFields(detail.nodeName).Result = detail.text
Next detail