VB6.0如何读取XML中各级节点及其子节点的值?如题 具体涉及到我的xml文件如下
<?xml version="1.0" ?>
- <root>
- <group>
- <groupinfo>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H</EMPCODE>
</groupinfo>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H031</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H031H</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
</group>
</root>在网上查了 可以读取到一级节点 Dim xmlDoc As DOMDocument '* XML 文件对象
Dim xmlRootNode As IXMLDOMNode '* 根节点
Dim FirstNode As IXMLDOMNode '* 第一级子节点
Dim SencondNode As IXMLDOMNode '* 第二级子节点
Dim ThridNode As IXMLDOMNode '* 第三级子节点 Set xmlDoc = New DOMDocument
xmlDoc.Load (App.Path & "\text.xml")
'读取根节点
Set xmlRootNode = xmlDoc.documentElement
'读取根节点下的一级子节点
If Not xmlRootNode Is Nothing Then '* 如果根节点不为空,则读取其中的子节点
For Each FirstNode In xmlRootNode.childNodes
Debug.Print FirstNode.nodeName '* 打印节点名
Next
End If
在往下读取二级节点<groupinfo> 和<member>中的各子节点的值就不知道怎么读取了,
请高手指教,谢谢!
<?xml version="1.0" ?>
- <root>
- <group>
- <groupinfo>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H</EMPCODE>
</groupinfo>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H031</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
- <member>
<fType>H31</fType>
<EMPCODE>H33H37H3H031H3H031H3H031H</EMPCODE>
<EMPNAME>H7AH7AH7AH7AH7A</EMPNAME>
<ALIAS />
<SEX>H31</SEX>
<FOLK>H48H41</FOLK>
<BIRTH>H31H39H37H37H3H032H3H034</BIRTH>
</member>
</group>
</root>在网上查了 可以读取到一级节点 Dim xmlDoc As DOMDocument '* XML 文件对象
Dim xmlRootNode As IXMLDOMNode '* 根节点
Dim FirstNode As IXMLDOMNode '* 第一级子节点
Dim SencondNode As IXMLDOMNode '* 第二级子节点
Dim ThridNode As IXMLDOMNode '* 第三级子节点 Set xmlDoc = New DOMDocument
xmlDoc.Load (App.Path & "\text.xml")
'读取根节点
Set xmlRootNode = xmlDoc.documentElement
'读取根节点下的一级子节点
If Not xmlRootNode Is Nothing Then '* 如果根节点不为空,则读取其中的子节点
For Each FirstNode In xmlRootNode.childNodes
Debug.Print FirstNode.nodeName '* 打印节点名
Next
End If
在往下读取二级节点<groupinfo> 和<member>中的各子节点的值就不知道怎么读取了,
请高手指教,谢谢!
楼主可以简单参考一下。
Debug.Print xmlRootNode.childNodes.Item(0).childNodes(0).nodeName
for i=0 to xmlRootNode.childNodes.Item(0).childNodes(1).childNodes.length-1
Debug.Print xmlRootNode.childNodes.Item(0).childNodes(1).childNodes(i).nodeValue
next
Dim getNodeVale As String '获取<member>下<fType></fType>节点的值
Set SencondNode = xmlDoc.documentElement.selectSingleNode("fType")
If SencondNode Is Nothing Then
getNodeValue = ""
Else
getNodeValue = valueNode.nodeTypedValue & ""
End If
Debug.Print getNodeValue
结果取不到啊
Debug.Print SencondNode.nodeName
Next这个循环能取出所有一级节点 但是有个地方还没明白 :item(0)为什么就能表示一级节点呢
1 <root> 2 <group> 3 <groupinfo>, <member> 4 <fType>
你首先要读取<root> ,然后读取<root>下的<group> ,然后读取 <group>下的 <groupinfo>或者<member>,然后才能是 <groupinfo>或者<member>下的 <fType>
。