Ich schreibe gerade mein Excel VBA auf OOO Basic um und hänge beim XML.
Die XML-Datei enthält Ergebnisse vom Programm MediaInfo.Exe und sieht ungefähr so aus:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.58">
<File>
<track type="Video">
<Width>320 pixels</Width>
<Height>240 pixels</Height>
</track>
<track type="Audio">
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>16.0 Kbps</Bit_rate>
</track>
</File>
<File>
<track type="Video">
<Width>480 pixels</Width>
<Height>320 pixels</Height>
</track>
<track type="Audio">
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>16.0 Kbps</Bit_rate>
</track>
</File>
</Mediainfo>
Ich habe die Datei auf 2 EInträge <File> gekürzt und nur je 2 Einträge im Bereich Video und Audio belassen.
Mein Programm sieht momentan so aus:
Code: Alles auswählen
Sub test_GetXML
oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oInStream = oSFA.openFileRead(file:///C:/test.xml)
oDOM = createUnoService("com.sun.star.xml.dom.DocumentBuilder")
oXML = oDOM.parse(oInStream)
oInstream.closeInput
oVideo = oXML.getElementsByTagName("Video")
End Sub
Ich möchte nun durch alle Files gehen und lediglich auf die untersten Elemente zugreifen also quasi auf die Elemente
File/Video/Width
File/Video/Height
File/Audio/Bit_rate
Meine Hänger sind
- wie komme ich von <File> zu <File> (in Excel ging das mit
For Each xmlNodeFile In xmlNodeMedia.childNodes)
- wie komme ich an die nächste Ebene <track> (Excel: selectSingleNode, nextSibling)
- wie komme ich an die Eigenschaften?
Ich habe schon die Methoden getElementsByTagNameNS und getElementsByTagName gefunden, finde aber noch kein Beispiel, das mir erklärt, wie ich sie anwende. Hat jemand schon Erfahrung mit dem XML-Parser und kann mir hier etwas helfen?
Ich schreibe gerade mein Excel VBA auf OOO Basic um und hänge beim XML.
Die XML-Datei enthält Ergebnisse vom Programm MediaInfo.Exe und sieht ungefähr so aus:[code]<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.58">
<File>
<track type="Video">
<Width>320 pixels</Width>
<Height>240 pixels</Height>
</track>
<track type="Audio">
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>16.0 Kbps</Bit_rate>
</track>
</File>
<File>
<track type="Video">
<Width>480 pixels</Width>
<Height>320 pixels</Height>
</track>
<track type="Audio">
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>16.0 Kbps</Bit_rate>
</track>
</File>
</Mediainfo>
[/code]Ich habe die Datei auf 2 EInträge <File> gekürzt und nur je 2 Einträge im Bereich Video und Audio belassen.
Mein Programm sieht momentan so aus:[code]Sub test_GetXML
oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oInStream = oSFA.openFileRead(file:///C:/test.xml)
oDOM = createUnoService("com.sun.star.xml.dom.DocumentBuilder")
oXML = oDOM.parse(oInStream)
oInstream.closeInput
oVideo = oXML.getElementsByTagName("Video")
End Sub[/code]Ich möchte nun durch alle Files gehen und lediglich auf die untersten Elemente zugreifen also quasi auf die Elemente
File/Video/Width
File/Video/Height
File/Audio/Bit_rate
Meine Hänger sind
- wie komme ich von <File> zu <File> (in Excel ging das mit [i]For Each xmlNodeFile In xmlNodeMedia.childNodes[/i])
- wie komme ich an die nächste Ebene <track> (Excel: selectSingleNode, nextSibling)
- wie komme ich an die Eigenschaften?
Ich habe schon die Methoden getElementsByTagNameNS und getElementsByTagName gefunden, finde aber noch kein Beispiel, das mir erklärt, wie ich sie anwende. Hat jemand schon Erfahrung mit dem XML-Parser und kann mir hier etwas helfen?