Elemente aus mehreren XML-Dateien zu einem zusammenfügen

aracattack

Mitglied
Hallo,
was ich suche würde man vermutlich einen Parser nennen..
Ums vorneweg zu erklären, es geht um ein Spiel namens Aion.. bzw. Server-Files dafür^^

Ich habe im Client also ein XML-Dokument, das Informationen zu NPCs enthält.. das sieht in etwa so aus:
[XML]<id>258201</id>
<name>LF4_2111_Boss_Li_2</name>
<desc>STR_LF4_2111_Boss_Li_2</desc>
<dir>Monster/GodEliteLF</dir>
<mesh>GodEliteLF</mesh>
<material>mat_flesh</material>
<foot_mat>foot_2leg_big</foot_mat>
<show_dmg_decal>1</show_dmg_decal>
<dmg_decal_texture>Damage_Decal_02</dmg_decal_texture>
<disk_type>guard</disk_type>
<ui_type>monster_raid</ui_type>
<cursor_type>attack</cursor_type>
<ui_race_type>light</ui_race_type>
<hide_path>1</hide_path>
<fxc_type>Henchwoman</fxc_type>
<sanctuary_animation>sanctuary</sanctuary_animation>
<visible_equipments>
<main>npc_orb_lfgod_01</main>
</visible_equipments>
<erect>1</erect>
<bound_radius>
<front>8.000000</front>
<side>5.000000</side>
<upper>21.500000</upper>
</bound_radius>
<scale>20</scale>
<weapon_scale>100</weapon_scale>
<altitude>0.000000</altitude>
<stare_angle>0.000000</stare_angle>
<stare_distance>0.000000</stare_distance>
<move_speed_normal_walk>0.000000</move_speed_normal_walk>
<art_org_move_speed_normal_walk>0.000000</art_org_move_speed_normal_walk>
<move_speed_normal_run>0.000000</move_speed_normal_run>
<move_speed_combat_run>0.000000</move_speed_combat_run>
<art_org_speed_combat_run>0.000000</art_org_speed_combat_run>
<weapon_hit_fx>sys_Monhit.monhit.P_hit</weapon_hit_fx>
<ammo_hit_fx>m_abs_chief.point.hit</ammo_hit_fx>
<in_time>0.100000</in_time>
<out_time>0.500000</out_time>
<neck_angle>0.000000</neck_angle>
<spine_angle>0.000000</spine_angle>
<pushed_range>0.000000</pushed_range>
<hpgauge_level>27</hpgauge_level>
<magical_skill_boost>0</magical_skill_boost>
<attack_delay>2000</attack_delay>
<game_lang>light</game_lang>
<ai_name>LF4_GH</ai_name>
<quest_ai_name>LF4_2111_Boss_Li_2</quest_ai_name>
<tribe>Guard</tribe>
<race_type>GChief_Light</race_type>
<pet_ai_name>Pet</pet_ai_name>
<sensory_range>20.000000</sensory_range>
<attack_range>37.000000</attack_range>
<attack_rate>1000</attack_rate>
<npc_type>Abyss_Guard</npc_type>
<talking_distance>0.000000</talking_distance>
<abyss_npc_type>boss</abyss_npc_type>
</npc_client>[/XML]

am ende soll es in den serverdateien so aussehen:
[XML] <npc_template npc_id="258201" level="27" name="enraged veille" name_id="320036" npc_type="ATTACKABLE" height="0.7" rank="NORMAL" race="GCHIEF_LIGHT" tribe="GUARD" ai="aggressive" srange="20" arange="37" adelay="2000" arate="1000" hpgauge="27">
<stats maxHp="108" maxXp="108" block="100" parry="11" mdef="11" pdef="11" crit="11" power="11" evasion="11" accuracy="11" magic_accuracy="11" walk_speed="0.0" run_speed="0.0" run_speed_fight="0.0" fly_speed="0.0"/>
<equipment>
<item>100500746</item>
</equipment>
<bound_radius front="8.0" side="5.0" upper="21.5"/>
</npc_template>[/XML]
die Schwierigkeit besteht eigendlich darin, dass einige Elemente in den Client-Files auf andere Dokumente verweisen (wie z.B. Items oder Beschreibungen)
und folglich erst aus den anderen Dokumenten herausgezogen werden müssen..
der Name z.B. kommt aus der Client_Strings.xml und der Eintrag sieht ungefähr so aus:
[XML] <string>
<id>320035</id>
<name>STR_LF4_2111_Boss_Li_2</name>
<body>Zorn-Veille</body>
</string>[/XML]
also muss der Parser erst in der client_npcs.xml nach dem <name> bzw. <desc> suchen und den gleichen dann auch in der client_strings.xml und da den <body> dann in den Serverfiles als name="" angeben.
das Gleiche gilt für Items, die in der client_npcs.xml als <main> (für haupthand) <sub> (für nebenhand) etc. eingetragen sind und entsprechend der Beschreibung erst in der client_item.xml gesucht werden müssen, die so aussieht:
[XML]<id>100500746</id>
<name>npc_orb_lfgod_01</name>
<desc>STR_NPC_ORB_LFGOD_01</desc>
<weapon_type>2h_orb</weapon_type>
<item_type>normal</item_type>[/XML]
in diesem Fall soll der Parser in der client_npcs.xml erst nach <main>, <sub> oder <...> suchen, danach entsprechend in der client_items.xml das richtige item finden und <id> als <item> in die Serverfiles schreiben

Ich hoffe, ich hab das einigermaßen verständlich beschreiben >,<


Die meisten Elemente werden ja eigendlich 1 zu 1 übernommen^^

Da ich aber von Java viel zu wenig Ahnung habe um überhaupt einen Ansatz auf die Beine stellen zu können, frag ich euch^^

Hoffentlich kann mir da Jemand weiterhelfen und so einen Parser schreiben >,<

Vielen vielen Dank,
ara
 

DerEisteeTrinker

Bekanntes Mitglied
Reicht es vllt, wenn du die XML mit JAXB einliest, auf Objekt-Ebene mit Java-Mitteln zusammenwurstest und dann wieder per JAXB zu einem XML werden lässt?
 

aracattack

Mitglied
wenn du mir erklärst wie, bestimmt >,< ich könnte die zeilen bestimmt auch irgendwie per excel zusammenwursteln, damit kenn ich mich wenigstens genug aus^^ aber das wäre eine unschöne methode xD
 

DerEisteeTrinker

Bekanntes Mitglied
Schau mal hier nach, da findest ein Tutorial

Mit Excel kann man XML Dateien bearbeiten? Ich werd echt zu alt für die IT, da kommen echt die verrücktesten Dinge auf den Markt :shock:
 

aracattack

Mitglied
danke, ich guck das mal an^^ wenn ich nicht schlau(er) draus werde, meld ich mich sicher nochmal =)

und ja, man kann XML-Dateien auch mit Excel oder Calc (Open Office) ver!arbeiten^^ bearbeiten nicht, weil die das Format zerschießen zwechs der Zellen-Trennung^^ aber ich kann bei Calc z.B. ja eingeben, welches Zeichen als Trennung verwendet werden soll^^ nehme ich da jetzt < oder >, trennt der mir sauber alle tags auf^^ vorher noch das dokument in lauter Ein-Zeiler verwandeln, dann bekommt man eine saubere Tabelle^^ da muss man dann hald die einzelnen Elemente heruassammeln und dann via Script oder Formel in die richtige Reihenfolge bringen und voilla... fertig^^ so hab ichs vorher auch immer gemacht.. aber das ist viel zu umständlich... Ich hatte halt gehofft, jemand könnte kurz etwas für mich zusammenbasteln^^ aber ich werd erstmal selber versuchen ;)
 

DerEisteeTrinker

Bekanntes Mitglied
Das Problem scheint nicht so groß zu sein, von daher setz dich lieber hin und mach es selber. Da lernst du noch was bei in Bezug auf XML.

Ich werd echt zu alt :lol: denn so eine umständliche Arbeit, wie du sie beschrieben hast, wäre mir schon zu viel. Da hab ich in der Zeit, wo ich mir das so zurechtgefuchst habe, schon das Programm geschrieben und die Unit-Tests fertig ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L XML einlesen gleichnamige Elemente XML & JSON 5
J Parent- und Child-Elemente mit gleiche Namen, geht das ? XML & JSON 1
S XML - Bestehende Elemente ändern XML & JSON 1
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
R Verschachtelung gleichnamiger Elemente XML & JSON 7
D optionale Elemente mit defaultwerten werden in xml miterzeugt XML & JSON 2
G JAXB und verschachtelte Elemente? XML & JSON 6
J Anzahl der Elemente in einem XML-Dokument auslesen XML & JSON 7
F Hilfe beim bearbeiten von XML elemente XML & JSON 3
G Wieviele Elemente von TagName, ich brings nicht hin XML & JSON 5
G Leere Elemente verhindern XML & JSON 7
aze JaxB Elemente in LinkedHashSet werden nicht wiededergegeben XML & JSON 3
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
D Tabs/Einrückungen der XML-Elemente gehen beim Schreiben verloren XML & JSON 5
Z XML auslesen, Elemente daraus entfernen und als neue XML zurückgeben XML & JSON 2
S JTree - Nur Elemente mit Attributen einfügen XML & JSON 2
T Elemente zählen mit JDOM in XML XML & JSON 7
G XML Parser Fehler, zwei gleiche kind-Elemente XML & JSON 7
F Elemente sortieren lassen XML & JSON 2
I Editor, der nur Elemente einfuegt, die nach xsd zulaessig XML & JSON 2
G xml einlesen und bestimmte Elemente an eine gui_Klasse überg XML & JSON 25
H Elemente eines Node auslesen XML & JSON 2
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2
P JDom nimmt keine Elemente an. XML & JSON 3
M Elemente mit Prefix via JDOM erstellen XML & JSON 6
J Jdom Elemente lesen XML & JSON 5
P zugriff auf gewuenschte elemente klapp nicht. XML & JSON 3
T Einfach nur die Elemente einer XML Datei auslesen :( XML & JSON 10
T Elemente aus XML-File löschen (JDom) XML & JSON 9
G Xml Elemente in eine Liste abspeichern! XML & JSON 2
G Elemente in XML XML & JSON 4
G brauche Tips, wie ich am besten auf Elemente zugreife XML & JSON 5
D Xml-Datei in JTree anzeigen und Elemente ausblenden XML & JSON 2
S JDOM Elemente suchen XML & JSON 2
S JAXB mit mehreren zusammenhängenden .xsd-Files XML & JSON 0
Kanda Sorata Eingabefelder von Excel Dateien auslesen XML & JSON 1
ms_cikar Excel Dateien über Dropbox zugreifen XML & JSON 0
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
X JDom für SOAP Dateien geeignet? XML & JSON 3
L compareto(), equals() in JAXB generierten Dateien XML & JSON 3
M Zwei XML-Dateien joinen XML & JSON 3
D xhtml Dateien splitten via DOM Tree XML & JSON 2
F XML unerlaubte Zeichen aus Dateien entfernen XML & JSON 9
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
Y xmlbeans und DTD Dateien XML & JSON 2
S Vergleichen von 2 XML Dateien XML & JSON 2
H XML-Datei in einzelne XML-Dateien zerlegen XML & JSON 2
P XML Dateien zusammenführen und in eine XML speichern XML & JSON 7
I RDF Dateien XML & JSON 3
S XMl Dateien in Java schreiben XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben