首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb读取xml文件,该怎么解决

2012-03-26 
vb读取xml文件我现在要读取xml文件里的多个相同节点的数据,我是用MSXML的方式,但我现在做循环的时候不知道

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>我现在怎么把这里面的数据循环取出来,能提供可参考的代码更好,感激不尽!!!

 

[解决办法]
十多天没写代码了。。。

VB code
'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 

热点排行