![]() |
AW: Xml
keiner ne idee :( ?
|
AW: Xml
Neben den Try / Except gibt es auch Try / Finally.
Delphi-Quellcode:
btw. zum Abfragen von XML biete sich auch XPath an.
// Speicher holen
a:=TEinObjekt.Create; try try tuWasMitException(); except hierAufraeumenWennFehler(); end; finally // Speicher aber immer! freigeben a.free; end; |
AW: Xml
Hallo,
mit dem Befehl "Count" kannst Du die Anzahl der Unterknoten ermitteln:
Delphi-Quellcode:
Dann kannst Du mittels Schleife die einzelnen Einträge auslesen:
Anzahl := SubNode.ChildNodes.Count;
Delphi-Quellcode:
for Nr := 1 to Anzahl do
begin Eintrag[Nr] := VarToStr(SubNode.ChildValues['Dev' + IntToStr(Nr)])); end; |
AW: Xml
Delphi-Quellcode:
program Test1;
{$APPTYPE CONSOLE} uses SysUtils, ActiveX, XMLIntf, XMLDoc; var i: Integer; myConfig: IXMLDocument; myNode: IXMLNode; myNodeList: IXMLNodeList; begin try CoInitialize(nil); myConfig := LoadXmlDocument('Config.xml'); myNode := myConfig.DocumentElement.ChildNodes.First.ChildNodes.FindNode('devs'); if myNode<>nil then begin myNodeList := myNode.ChildNodes; for i := 0 to myNodeList.Count - 1 do WriteLn(myNodeList[i].NodeName, ': ', myNodeList[i].NodeValue); end; ReadLn; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. |
AW: Xml
Hi leutz
also ich bin meinem Ziel schon ziemlich nahe, ich kann mir jetzt nahezu ALLES auslesen, bis auf eins:
Code:
jetzt kann ich aber mehrere blöcke haben wie zB:
<virtualdrive id="1">
NODES NODES NODES NODES </virtualdrive>
Code:
dh. ich muss praktisch wieder eine zähler schleife machen und die ID abfragen
<virtualdrive id="1">
NODES NODES NODES NODES </virtualdrive> <virtualdrive id="2"> NODES NODES NODES NODES </virtualdrive> ? wie würde das in ungefähr funktionieren? |
AW: Xml
Schau dir doch mal XPath an.
![]() ![]() ![]() ... ![]() |
AW: Xml
Hi wieder mal :)
ich habe mir ein test.xml angelegt mit folgendem Inhalt:
Code:
mein Code sieht wie folgt aus:
<test id="1">
<wert>100</wert> <wert2>500</wert2> </test> <test id="2"> <wert>800</wert> <wert2>1200</wert2> </test>
Delphi-Quellcode:
Damit bekomme ich schön folgendes Ergebnis:
program test;
{$APPTYPE CONSOLE} uses SysUtils, xmldoc, xmlintf, activex; var i: Integer; myConfig: IXMLDocument; myNode: IXMLNode; begin CoInitialize(nil); myConfig := LoadXmlDocument('C:\test.xml'); myNode := myConfig.DocumentElement.ChildNodes.First; if (myNode <> nil) then begin while (myNode <> nil) do begin if (myNode.HasAttribute('id')) then Writeln('ID: '+myNode.Attributes['id']); mynode := mynode.NextSibling; end; end; end.
Code:
Das ist für mich ja schon ein großer Schritt :) aaaabbbeeeerrr
ID: 1
ID: 2 Wie ist es möglich, den "wert2" von "testid 1" zu bekommen bzw. von "testid2" ? irgendwelche Ideen? danke schon mal LG |
AW: Xml
Zitat:
Delphi-Quellcode:
.
<test ...>
Wenn deine Datei also wirklich genau so aussieht, dann sollte MSXML dieses eigentlich sofort bemängeln. myNode enthält deine Knoten und da du von diesen die Unterknoten willst, würde ich mit mal
Delphi-Quellcode:
ansehn.
myNode.ChildNodes
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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