【问题标题】:How can I index the right node on a XML file?如何索引 XML 文件上的正确节点?
【发布时间】:2020-11-18 00:29:04
【问题描述】:

所以我试图读取节点并将它们的字段写入 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字符串,但是当我只引用数据时,它返回一个空字符串,接收它的范围是blanc,下一个子节点按预期返回值节点内的内容。不知道我在这里错过了什么......

【问题讨论】:

    标签: excel xml vba xml-parsing


    【解决方案1】:

    这应该做的工作

    Dim ElementAttribute As IXMLDOMAttribute
    
    Set ElementAttribute = myNode.Attributes.getNamedItem("name")
    Debug.Print ElementAttribute.Text
    

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多