Dateivergleich

Status
Nicht offen für weitere Antworten.

spike78

Bekanntes Mitglied
Hallo zusammen,

ich versuche gerade folgdendes zu implementieren.

Ich möchte zwei Dateien miteinandervergleichen die so aussehen:


.
.
.
<event>
<attribute type="TESTACTIONS-TACT_ID">27568</attribute>
<attribute type="TESTACTIONS-TACT_TCASE_ID">10660</attribute>
<attribute type="TESTACTIONS-TACT_TEST_JAVA_ID">JRE_13103</attribute>
<attribute type="PROTOCOLS-PRC_ID">24310</attribute>
<attribute type="TESTACTIONS-TACT_ENV_ID">1164</attribute>
<attribute type="TESTACTIONS-TACT_REL_ID">271</attribute>
<attribute type="TESTACTIONS-TACT_TESTER_USR_ID_2">MIKN</attribute>
<attribute type="TESTACTIONS-TACT_QAT_ID">23</attribute>
<attribute type="TESTACTIONS-TACT_TOBJ_ID">3771</attribute>
<attribute type="PROTOCOLS-PRC_PROTOCOLTYP_ID">N</attribute>
<attribute type="PROTOCOLS-PRC_TACT_ID">27568</attribute>
<attribute type="TESTACTIONS-TACT_COMP_ID">3771</attribute>
<attribute type="TESTACTIONS-TACT_SEV_ID">0</attribute>
<attribute type="PROTOCOLS-PRC_USR_ID">MIKN </attribute>
<attribute type="TESTACTIONS-TACT_REV_ID">99</attribute>
<attribute type="TESTACTIONS-TACT_TESTER_USR_ID">MIKN</attribute>
<attribute type="TESTACTIONS-TACT_TDATE">16.09.2004</attribute>
<attribute type="TESTACTIONS-TACT_DEV_REL_ID">271</attribute>
<attribute type="TESTACTIONS-TACT_TEST_DBV_ID">ORA9R2_EE </attribute>
<attribute type="PROTOCOLS-PRC_USRROLE_ID">QPV </attribute>
<attribute type="PROTOCOLS-PRC_DATE">16.09.2004</attribute>
<attribute type="TESTACTIONS-TACT_TEST_BNR_ID">b1001_csvext </attribute>
</event>
.
.
.
Leider ist in beiden Dateien die Reihenfolge der Events unterschiedlich. Im ersten Schritt gehe ich hin und zähle in beiden Dateien die Anzahl der Events und vergleiche diese miteinander. Das geht schon. Im zweiten Schritt möchte ich nun mit dem Attribut "PROTOCOLS-PRC_ID" über die Dateien laufen. Sobald dies gefunden worden ist, will ich nun alle Attribute die in diesem Eventblock stehen in einem Array speichern. Das mache ich mit beiden Dateien.

Nun zu meinem Problem. Wie ich nach dem Attribut "PROTOCOLS-PRC_ID" suche weiss ich, aber wie bekomme ich nun die Attribute dieses Blockes in das Array ? Es stehen ja welche darüber und welche darunter.

Danke und Gruß

Michael
 

michi2

Bekanntes Mitglied
Fersteh ich das richtig, du suchst in diesem Beispiel das "24310"?
Wen ja: dann fersteh ich das Problem nicht, du suchst "PROTOCOLS-PRC_ID", und nimst dan einen substing von idexOf(">", gefundenen position)+1 bis idexOf("</attribute>
", gefundenen position).

Wenn ich was falsch verstanden habe bitte nochmal fragen...
 

spike78

Bekanntes Mitglied
Ne nicht ganz. Ich suche zwar nach diesem Attribut. Aber sobald ich es gefunden habe, möchte ich die Attributnamen aller Attribute in diesem Event in dem ich es gefunden habe in ein Array schreiben. Danach springe ich zum nächsten
PROTOCOLS-PRC_ID und mache dort das gleich usw.

gruß
 

muckelzwerg

Bekanntes Mitglied
Ich schlage vor eine XML Bibliothek zu verwenden.
In dem Fall wäre mir ein ObjectModel System das Angenehmste.
Wenn Deine Datei XML conform ist kannst Du das ganze Dokument in ein "Baumobjekt" einlesen und darin rumsuchen, wie Du lustig bist.
Die Events werden dann zu Elementen mit Attributen, die kannst Du entweder direkt verwenden, oder in Arrays umlagern.
Je nach dem, was Du genau vor hast, geht es mit sequentiellem Parsen auch/schneller.

-- -- muckelzwerg
 

byte

Top Contributor
Guck ins XML-Forum, da gibts genug Beispiele. Such am besten nach JDOM, das ist recht einsteigerfreundlich.

Oder halt direkt gucken auf: www.jdom.org
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben