Hallo zusammen,
ich möchte in einer XML-Datei bestimmte Elemente finden.
Das XML ist wie folgt aufgebaut:
<?xml version='1.0'?>
<Locations>
<Location>
<ID1>AAA</ID1><ID2>111</ID2><Date>01.01.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>AAA</ID1><ID2>111</ID2><Date>02.02.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>AAA</ID1><ID2>222</ID2><Date>05.05.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>AAA</ID1><ID2>333</ID2><Date>03.03.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>BBB</ID1><ID2>111</ID2><Date>07.07.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>BBB</ID1><ID2>111</ID2><Date>01.01.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>BBB</ID1><ID2>222</ID2><Date>09.09.2000</Date><Status>I</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>CCC</ID1><ID2>111</ID2><Date>10.10.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
<Location>
<ID1>CCC</ID1><ID2>222</ID2><Date>13.12.2000</Date><Status>A</Status><MoreStuffHere>...</MoreStuffHere>
</Location>
</Locations>
Ich möchte nun z.B. alle Location-Elemente finden, die in ID1 "AAA" stehen haben und in ID2 "111".
Wenn ich das XML über einen NotesStream in einen NotesDOMParser schubse und parse, dann kann ich ja z.B. mittels "nParser.Document.DocumentElement.GetElementsByTagName({Location})" alle Locations bekommen.
Wie komme ich aber an die Locations, die bestimmte Werte in ID1 und ID2 haben?
Iterieren ist ungünstig, da es über 120.000 Lokationen sind.
Meine Java-Kollegen schreien "XPATH!!!", aber wenn ich das richtig sehe, steht mir das in Lotus-Skript nur zur Verfügung, wenn ich über "Microsoft.XMLDOM" gehe - und das Skript muss sowohl per Agent auf einem Linux-Server laufen, als auch bei manuellem Start lokal auf Windows-Rechnern.
Auf Java-Bibliotheken oder Agenten möchte ich möglichst verzichten, die gesamte Anwendung mit LS erstellt wurde und ich im Rahmen des Abgleiches auf andere Bibliotheken zurück greifen muss.
Geht das überhaupt und wenn ja: Wie? Und falls nein: Wie würdet ihr vorgehen?
Beste Grüße,
Mitch