Komplexes XML auslesen, wie
Gab
- vb-script
1 Thomas J.S.0 Gab1 Thomas J.S.0 Gab
Hallo,
ich kämpfe mit folgender Struktur:
<data>
<struct>
<var name="inhalt">
<struct>
<var>
<array length="5">
<struct>
<var name="id">
<string>1111</string>
</var>
<var name="inhalt">
<string>blabla</string>
</var>
</struct>
<struct>
<var name="id">
<string>1112</string>
</var>
<var name="inhalt">
<string>blabla</string>
</var>
</struct>
<struct>
<var name="id">
<string>1113</string>
</var>
<var name="inhalt">
<string>blabla</string>
</var>
</struct>
</array>
</var>
</struct>
</var>
</struct>
</data>
Auslesen muß ich den tag <string> beim tag <var name="id">.
Bislang schaffe ich es nur, den ersten der fünf anzusprechen mit VBScript, alle weiteren erreiche ich nicht.
Hat jemand eine Idee?
Danke
Gab
Hallo,
Auslesen muß ich den tag <string> beim tag <var name="id">.
Bislang schaffe ich es nur, den ersten der fünf anzusprechen mit VBScript, alle weiteren erreiche ich nicht.
Hat jemand eine Idee?
Dim xmlDoc As New Msxml2.DOMDocument40
Dim objNodeList As IXMLDOMNodeList
xmlDoc.async = False
xmlDoc.resolveExternals = False
xmlDoc.Load "foo.xml"
If (xmlDoc.parseError.errorCode != 0) Then
Dim myErr
Set myErr = xmlDoc.parseError
MsgBox("You have error " & myErr.reason)
Else
xmlDoc.setProperty "SelectionLanguage", "XPath"
Set objNodeList = xmlDoc.documentElement.selectNodes("//string[parent::var[@name = 'id']]")
MsgBox objNodeList.length
End If
Grüße
Thomas
Danke Thomas,
aber so bekomme ich nur die Anzahl der Elemente. Wie aber hole ich mir eins nach dem anderen den Inhalt der jeweiligen Elemente heraus?
Grüße
Gab
Hallo,
aber so bekomme ich nur die Anzahl der Elemente.
Ja, klar.
Wie aber hole ich mir eins nach dem anderen den Inhalt der jeweiligen Elemente heraus?
Ich dachte du kennst dich mit VB aus!? (*
Else
xmlDoc.setProperty "SelectionLanguage", "XPath"
Set objNodeList = xmlDoc.documentElement.selectNodes("//string[parent::var[@name = 'id']]")
For i = 0 To (objNodeList.length - 1)
Set objNode = objNodeList.nextNode
MsgBox objNode.Text
Next
End If
Statt dem "MsgBox objNode.Text" (das dir den Text ausgibt) muss du natürlich das machen, was du mit dem Inhalt vom <string> machen willst.
Grüße
Thomas
PS: * die Beispiele hier sind aus dem MSXML4.0 SDK ich habe sie nur für dich angepasst.
Danke.
Ich dachte du kennst dich mit VB aus!? (*
Mit VBScripit etwas, mit VB nicht, und mit XPath erst recht nicht.
Daher nochmals:
Danke
Gab