![]() |
OpenXML - Ganz einfach einen Wert auslesen
Hallo zusammen,
ich habe Delphi PE2005 und muss deshalb auf eine XML Alternative ausweichen. Etliche Male wurde OpenXML erwähnt, dies habe ich nun installiert. Leider verstehe ich bei den examples nur Bahnhof! Bei den Tutorials, welche online sind, wird von einer älteren Version ausgegangen... Wie auch immer, ich habe keine Ahnung wie ich einen Wert aus einer xml Datei herausbekomme: Die .xml Datei sieht wie folgt aus (Ist eigentlich eine .desc Datei eines BF2 Maps ): Zitat:
XML-Code:
<map>
<name> Ebel_es_Saqi </name> <briefing locid="BRIEFING TEY"</briefing> <music> common/sound/menu/music/load_MEC_music.ogg </music> <modes> <mode type="gpm_cq"> <maptype ai="1" players="16" type="doubleassault" locid="GAMEMODE_DESCRIPTION_doubleassault">Unlocalized test for this mode on this map</maptype> <maptype players="32" type="headon" locid="GAMEMODE_DESCRIPTION_headon">Unlocalized test for this mode on this map</maptype> <maptype players="64" type="headon" locid="GAMEMODE_DESCRIPTION_headon">Unlocalized test for this mode on this map</maptype> </mode> </modes> </map> Ich möchte nun eigentlich folgendes umsetzen: Laden der Datei: 'C:\example.xml' Auslesen des Namens in eine Variable: MapName := --> Also 'Ebel_es_Saqi' Ich weiss das es nicht gerne gesehen wird, wenn ein Fragesteller GAR KEINEN Sourcecode beilegt. Aber ich verstehe leider überhaupt nicht, wie ich überhaupt beginnen soll... :gruebel: !VIELEN DANK SCHON MAL IM VORAUS! |
Re: OpenXML - Ganz einfach einen Wert auslesen
Hallo,
das OpenXML-Package folgt sehr eng dem DOM-Level-1-Core des W3C, wie auch dem DOM-Level-2-Core vom 7. März 2000. Das heißt, du kannst also auf alles Wissen bezüglich XML-Implementation zurückgreifen, das sich am DOM orientiert. Hierzu zählen zum Beispiel Xerces, SAX oder auch die Microsoft XML Core Services. Oder etwas verständlicher ausgedrückt: Alle Code-Beispiele, die hier und in anderen Foren bezüglich SAX oder des MSXML-Parsers gepostet wurden, sollten sich relativ einfach an OpenXML anpassen lassen. Du brauchst:
![]() Gruß |
Re: OpenXML - Ganz einfach einen Wert auslesen
@Neuromancer
Ich muss zwar zugeben, das ich nicht die Hälfte von den angebenen und gelesenen Informationen verstanden habe aber es micht inspiriert. Folgende Lösung habe ich nun geschrieben: Als erstes natürlich einbinden der OpenXML Dateien (Utilities und XDOM3_2) Danach auf mein Form die Komponenten TDOMImplementation und TXMLToDomParser gezogen. Bei TXMLToDOmParser muss im Objektinspektor unter "DOMImpl" der Name "DomImplementation1" gesetzt werden. Im Code habe ich dann folgendes geschrieben:
Delphi-Quellcode:
Somit ist es mir möglich einen Wert eines Nodes herauszulesen.
uses
XDom_3_2; procedure TForm1.Button1Click(Sender: TObject); var xmlDoc : TDomDocument; XmlChild1, XmlChild2 : TDomElement; begin // = XML Einlesen (Resp. .desc File eines Battlefield 2 Maps) xmlDoc := XmlToDomParser1.FileToDom('C:\example.desc'); // = Erstes Child finden XmlChild1 := XmlDoc.FindFirstChildElement; ShowMessage(XmlChild1.GetTagName); // = Gibt den Namen des ersten Child aus // = Vom ersten Child aus, das nächste finden XmlChild2 := XmlChild1.FindFirstChildElement; ShowMessage(XmlChild2.GetTagName); // = Gibt den Namen des ersten Child unterhalb des ersten Child // = Ausgabe des Inhalts von Child2 ShowMessage(XmlChild2.TextContent); end; Soweit so gut :cheers: Kann ich nicht direkt auf den Wert eines Nodes zu greifen, wenn ich dessen Name kenne? Also zB Child1 \ Child2 = Wert MAP . NAME = Wert Danke für die weitere Unterstützung. Gruess Ice |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz