我有一个像下面的xml文件。
<ConnectedAP apName="I16:ETH0" iedName="IE16">
<Address>
<P type="OSI-AP-Title">1,3,9999,23</P>
<P type="IP">172.18.12.243</P>
<P type="OSI-AE-Qualifier">23</P>
<P type="OSI-PSEL">0001</P>
<P type="OSI-SSEL">0001</P>
<P type="OSI-TSEL">00000001</P>
</Address>
</ConnectedAP>
<ConnectedAP apName="S1" iedName="STGK16999997422">
<Address>
<P type="OSI-AP-Title">1,3,9999,23</P>
<P type="IP">172.18.12.24</P>
<P type="OSI-AE-Qualifier">23</P>
<P type="OSI-PSEL">00000001</P>
<P type="OSI-SSEL">0001</P>
<P type="OSI-TSEL">0001</P>
</Address>
</ConnectedAP>
<ConnectedAP apName="LD0" iedName="GTG699999731RET">
<Address>
我需要通过vba找到iedName
的值。
提前致谢。
这是一个快速函数,循环遍历每个// ConnectedAP,输出@iedName属性。
Public Sub getXML()
Set XML = CreateObject("MSXML2.DOMDocument")
Dim strXML As String
strXML = "<xml><ConnectedAP apName='I16:ETH0' iedName='IE16'> <Address> <P type='OSI-AP-Title'>1,3,9999,23</P> <P type='IP'>172.18.12.243</P> <P type='OSI-AE-Qualifier'>23</P> <P type='OSI-PSEL'>0001</P> <P type='OSI-SSEL'>0001</P> <P type='OSI-TSEL'>00000001</P> </Address> </ConnectedAP> <ConnectedAP apName='S1' iedName='STGK16999997422'> <Address> <P type='OSI-AP-Title'>1,3,9999,23</P> <P type='IP'>172.18.12.24</P> <P type='OSI-AE-Qualifier'>23</P> <P type='OSI-PSEL'>00000001</P> <P type='OSI-SSEL'>0001</P> <P type='OSI-TSEL'>0001</P> </Address></ConnectedAP></xml>"
Call XML.LoadXML(strXML)
Dim ndXML As Object
Set ndXML = XML.SelectNodes("//ConnectedAP")
For i = 0 To ndXML.Length - 1
MsgBox ndXML(i).getAttribute("iedName")
Next i
End Sub