如何索引 XML 文件中的正确节点?
How can I index the right node on a XML file?
所以我试图读取节点并将它们的字段写入 Excel 工作簿,但是我无法为我想要的特定字段编制索引。 XML 结构如下:
<root>
<data name="Admin" xml:space="preserve">
<value>Administrador</value>
</data>
</root>
现在的问题是,我可以毫无问题地获取节点内的文本,但我还想获取紧跟在数据名称之后的“”内的文本。 VB代码如下:
Dim XDoc As Object
Dim myNodes As IXMLDOMNodeList, myChildNodes As IXMLDOMNodeList
Dim myElement As IXMLDOMElement
Dim myNode As IXMLDOMNode, myChildNode As IXMLDOMNode
Dim nNode As Integer
Dim nChildNode As Integer
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False: XDoc.validateOnParse = False
XDoc.load (vFileName)
Set myNodes = XDoc.SelectNodes("//data/value")
If myNodes.Length > 0 Then
For nNode = 0 To myNodes.Length - 1
Set myNode = myNodes(nNode)
Set myChildNodes = myNode.ChildNodes ' Get the children of the first node.
For nChildNode = 0 To myChildNodes.Length - 1
vNode = myChildNodes(nChildNode).Text
vRange2 = "A" + Trim(Str(vLineTAG))
Range(vRange2).Value = vNode
Next nChildNode
Next nNode
Else
'Stuff and all
End If
所以这里我引用“value”并且 vNode 正在获取上面节点内的 Administrador 字符串,但是当我只引用数据时,它 returns 一个空字符串,接收它的范围是 blanc ,以及下一个子节点 returns 值节点内的预期内容。不知道我在这里错过了什么...
这应该可以完成工作
Dim ElementAttribute As IXMLDOMAttribute
Set ElementAttribute = myNode.Attributes.getNamedItem("name")
Debug.Print ElementAttribute.Text
所以我试图读取节点并将它们的字段写入 Excel 工作簿,但是我无法为我想要的特定字段编制索引。 XML 结构如下:
<root>
<data name="Admin" xml:space="preserve">
<value>Administrador</value>
</data>
</root>
现在的问题是,我可以毫无问题地获取节点内的文本,但我还想获取紧跟在数据名称之后的“”内的文本。 VB代码如下:
Dim XDoc As Object
Dim myNodes As IXMLDOMNodeList, myChildNodes As IXMLDOMNodeList
Dim myElement As IXMLDOMElement
Dim myNode As IXMLDOMNode, myChildNode As IXMLDOMNode
Dim nNode As Integer
Dim nChildNode As Integer
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False: XDoc.validateOnParse = False
XDoc.load (vFileName)
Set myNodes = XDoc.SelectNodes("//data/value")
If myNodes.Length > 0 Then
For nNode = 0 To myNodes.Length - 1
Set myNode = myNodes(nNode)
Set myChildNodes = myNode.ChildNodes ' Get the children of the first node.
For nChildNode = 0 To myChildNodes.Length - 1
vNode = myChildNodes(nChildNode).Text
vRange2 = "A" + Trim(Str(vLineTAG))
Range(vRange2).Value = vNode
Next nChildNode
Next nNode
Else
'Stuff and all
End If
所以这里我引用“value”并且 vNode 正在获取上面节点内的 Administrador 字符串,但是当我只引用数据时,它 returns 一个空字符串,接收它的范围是 blanc ,以及下一个子节点 returns 值节点内的预期内容。不知道我在这里错过了什么...
这应该可以完成工作
Dim ElementAttribute As IXMLDOMAttribute
Set ElementAttribute = myNode.Attributes.getNamedItem("name")
Debug.Print ElementAttribute.Text