![]() |
Xml
Hi
Ich weiß das Thema wurde schon X mal angesprochen ,versucht zu erklären usw bin jetzt 2 Tage an google gesessen und konnte das "Problem" leider immer noch nicht lösen :( ich habe folgendes XML und bin ziemlich neu in dem Bereich:
XML-Code:
Was ich so ergooglet habe muss ich ich das ganze in einen DOM einlesen, ich weiß aber leider nicht wie das funkt, hab was gelesen vonwegen SimpleXML und XDOM aber ich komm mit den beschreibungen im Netz
<config>
<virtualdrive1> <maxsize>700</maxsize> <validfrom>YYYY-mm-dd hh:mm:ss.999</validfrom> <validto>YYYY-mm-dd hh:mm:ss.999</validto> <example> <ex1>example</ex1> <ex1>example</ex2> </example> <share> <shareuser>user</shareuser> <sharepw>sharepw</sharepw> <sharepath>sharepath</sharepath> </share> </virtualdrive1> </config> nicht wirklich klar könnt ihr mir da helfen ? Danke schon mal im voraus und LG |
AW: Xml
Hallo Value,
es gibt hier ein XML-Unterforum, da findest Du sicher einige Hinweise. ![]() |
AW: Xml
hi stahli
Das sieht ja sehr gut aus, ich habe aber das Problem, das ich das ganze auf Console app basis mache. Dh. ich müsste theoretisch (das sind jetzt spekulationen :) ) : - xml zu uses hinzufügen - das xml deklarieren myxml : TXMLDocument; - myxml.loadfromfile('C:\myxml.xml'); aber dann weiß ich nicht weiter, es gibt kein "DocumentElement" :( gibt es da eine andere möglichkeit? LG |
AW: Xml
Zitat:
Und wenn du mal nach deinem verwendeten ![]() z.B. in ![]() Zitat:
Delphi-Quellcode:
verwendet hast, dann gibt es gibt es das definitiv.
myxml : TXMLDocument
|
AW: Xml
So, oder ähnlich funktioniert das mit allen XML-Komponenten - Beispiel:
Delphi-Quellcode:
Ausgabe ist dann "700"
program Test1;
{$APPTYPE CONSOLE} uses SysUtils, SimpleXML; var myConfig: IXmlDocument; begin try myConfig := LoadXmlDocument('C:\myxml.xml'); WriteLn(myConfig.SelectSingleNode('config\virtualdrive1\maxsize').Text); ReadLn; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. Achtung Beispieldatei ist fehlerhaft! statt: <ex1>example</ex2> wäre richtig: <ex2>example</ex2> |
AW: Xml
das kommt wohl ganz auf die xml compo/unit an. ;)
|
AW: Xml
danke für die antworten...
hab das mit SimpleXML probiert ich habe aber keine function mit selectsinglenode. habe es deshalb mal mit XML versucht:
Delphi-Quellcode:
program test;
{$APPTYPE CONSOLE} uses SysUtils, xml; var a : TXmlDocument; begin try a.LoadFromFile('C:\config.xml'); Writeln(a.GetTag('config\param').CData); except on e : exception do begin writeln(e.message); halt(1); end; end; end. bekomme aber immer eine exception :( |
AW: Xml
Schau mal
![]() |
AW: Xml
Zitat:
Wobei es immer schön wäre, wenn man den "Text" der Exceptions erfährt. Meine :glaskugel: vermutet aber was mit "Zugriffsverletzung auf Adresse $000000xx". PS: In meinem himXML-Download befinden sich ein paar Demos und in der CheckLibs.dpr gibt es, unter Anderem, auch einige Beispiele für SimpleXML. OK, SimpleXML ist etwas anders aufgebaut, da könnte das mit dem DOMDocument stimmen. Wobei dein Delphi auch MSXML enthält > TXMLDocument aus der Unit XMLDoc. @stahli: SimpleXML und XPath? |
AW: Xml
ah ok, habe jetzt mal folgendes versucht:
Delphi-Quellcode:
var
a : TXmlDocument; begin try a := TXMLDocument.Create; a.LoadFromFile('C:\config.xml'); Writeln(a.GetTag('config\param').CData); except on e : exception do begin writeln(e.message); halt(1); end; end; end. und bekomme folgendes zurück: Fehler beim Parsen von Datei 'config.xml' (Zeile 3, Zeichen 9): '<' erwartet, aber '1' gefunden was meint er damit? mein XML sieht so aus: <config> <param>123</param> </config> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 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 by Thomas Breitkreuz