vb读取xml文件
我现在要读取xml文件里的多个相同节点的数据,我是用MSXML的方式,但我现在做循环的时候不知道怎么依次读取,我把XML文件写出来
大家帮我看看,我应该怎么写for循环 依次读取相同节点里的不同数据。
prodPriceDownLoad.xml 内容如下
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>70001900</id>
<cat_id>EE667</cat_id>
<bar_code>AE19020080808</bar_code>
<disp_name>sassss</disp_name>
<name>ffds</name>
<price>
<type>frfrfr</type>
<price>433</price>
<discount>eds</discount>
<point>ssaas</point>
</price>
<price>
<type>frfrfr</type>
<price>455</price>
<discount>sdsd</discount>
<point>dsds</point>
</price>
<last_modify_datetime>20009-08-09</last_modify_datetime>
<desc>eddwqwdew</desc>
</product>
<product>
<id>70001900</id>
<cat_id>EE667</cat_id>
<bar_code>AE19020080808</bar_code>
<disp_name>sassss</disp_name>
<name>ffds</name>
<price>
<type>frfrfr</type>
<price>455</price>
<discount>sdsd</discount>
<point>dsds</point>
</price>
<price>
<type>frfrfr</type>
<price>455</price>
<discount>sdsd</discount>
<point>dsds</point>
</price>
<last_modify_datetime>20009-08-09</last_modify_datetime>
<desc>eddwqwdew</desc>
</product>
</products>
大家应该看见了 有2个<product></product>,<price></price>我现在怎么把这里面的数据循环取出来,能提供可参考的代码更好,感激不尽!!!
[解决办法]
十多天没写代码了。。。
'ClsXML类Option ExplicitPrivate DOM As DOMDocumentPrivate XmlFilePath As String '用于保存XML文件路径'加载XML文件Public Function load(sPath As String) As Boolean XmlFilePath = sPath DOM.load sPath '想最快熟悉DOM操作XML。。您可以在这下面的End Function设置一个断点。。 '监视这个DOM对象。。查看他的ChildNodes值就能搞懂XML在DOM中的结构了 '这里没有写错误处理。。sPath是XML文件的路径 End FunctionPrivate Sub Class_Initialize() Set DOM = New DOMDocumentEnd Sub'获得第一个product中的ID结点Public Property Get ID_1() As String Dim E As IXMLDOMElement Set E = DOM.childNodes(1).childNodes(0).childNodes(0) ID_1 = E.TextEnd Property'设置第一个product中的ID结点Public Property Let ID_1(ByVal vNewValue As String) Dim E As IXMLDOMElement Set E = DOM.childNodes(1).childNodes(0).childNodes(0) E.Text = vNewValue '保存XML文件 DOM.save XmlFilePathEnd Property'获得第二个product中的第一个price结点中的Type值Public Property Get TYPE_2() As String Dim E As IXMLDOMElement 'DOM.childNodes(1) 返回的是对products结点的引用 'DOM.childNodes(1).childNodes(1) 返回的是对products结点中的第二个products结点的引用 'DOM.childNodes(1).childNodes(1).childNodes(5) 返回的是对products结点中的第二个products结点中的price结点的引用 Set E = DOM.childNodes(1).childNodes(1).childNodes(5).childNodes(0) '这个返回的是对以上引用结点中的Type结点的引和 'XML是一个树形结构。。ChildNodes(这里的值为0~子结点总数-1) '注意DOM顶级结点..DOM.ChildNodes(0)返回的这句的引用"<?xml version="1.0" encoding="UTF-8"?> " 'DOM.childNodes(1)才是对products结点的引用 '这里所用的方法都是使用子结点引用。。在DOM中还有其它方法可以查找某个结点对其引用 TYPE_2 = E.TextEnd Property'第二个product中的第一个price结点中的Type值Public Property Let TYPE_2(ByVal vNewValue As String) Dim E As IXMLDOMElement Set E = DOM.childNodes(1).childNodes(0).childNodes(0) E.Text = vNewValue '保存XML文件 DOM.save XmlFilePathEnd Property