2012-10-11 74 views
1

我想通过使用VBA读取XML文件的一个或两个嵌套节点的值。 (我尝试使用DOM(MSXML.DOMDocument)。)使用DOM与VBA读取特定的XML嵌套节点

例如,我想从以下XML中确定/szamla/fejlec/elado/nev/节点的值为“Budapesti ElektromosMűvekNyrt”。

<?xml version="1.0" encoding="ISO-8859-2" ?> 
<szamla szamkor="000000200267" szafaz="800101068670" feldolgazon="35245830" 
    ugyfelaz="2200502333"> 
<fejlec> 
<elado> 
<nev>Budapesti Elektromos Művek Nyrt.</nev> 
<adoszam>10768033-2-44</adoszam> 
<cim> 
<orszag>Magyarország</orszag> 
<telepules>Budapest</telepules> 
<irszam>1132</irszam> 
<kozternev>Váci út 72-74.</kozternev> 
</cim> 
</elado> 
... 

<szamla szamkor="000000200267" szafaz="800101068670" feldolgazon="35245830" 
    ugyfelaz="2200502333"> 

这似乎是非常基本的,但我一直无法想象如何做几个小时。

+1

你如何阅读code/text/xml?你试过什么了? – SeanC

回答

2

试试这个,看看它给你的任何想法

Sub thing() 

    Dim xmldoc As MSXML2.DOMDocument 
    Set xmldoc = New MSXML2.DOMDocument 

    xmldoc.loadXML "<one><two><three><four></four></three></two></one>" 
    MsgBox xmldoc.selectSingleNode("/one/two/three/four").nodeName 

End Sub 

参考是Microsoft XML, v4.0。对我来说,这是位于C:\ WINNT \ system32 \ msxml4.dll。

+1

'.nodeName'将返回你已经知道的“4”,因为节点中的文本使用'.Text' – KekuSemau