使用带VBA的DOM读取特定的XML嵌套节点

时间:2012-10-11 20:36:02

标签: xml vba dom msxml

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

例如,我想从以下XML中确定/szamla/fejlec/elado/nev/节点的值是“BudapestiElektromosMű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 个答案:

答案 0 :(得分: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。