![]() |
ntElement auslesen
Hallo, bei einem Request bekomme ich ein XML-Dokument wie folgt zurück:
Code:
Bisher hatte ich die Datei als String übernommen, die Strings "NewConnectionStatus", "NewLastConnectionError" und "NewUptime" gesucht und die Werte extrahiert. Ich möchte dies jedoch über XML sauber auslesen.
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:GetStatusInfoResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"> <NewConnectionStatus>Connected</NewConnectionStatus> <NewLastConnectionError>ERROR_NONE</NewLastConnectionError> <NewUptime>33548</NewUptime> </u:GetStatusInfoResponse> </s:Body> </s:Envelope>' Mit
Delphi-Quellcode:
aNode := aXMLDoc.ChildNodes['s:Envelope'].ChildNodes['s:Body'].ChildNodes['u:GetStatusInfoResponse'];
komme ich an den Knoten. Jedoch kann ich den Wert
Delphi-Quellcode:
Result.ConnectionStatus := aNode.ChildNodes['NewConnectionStatus'].Text;
nicht auslesen, da der Knoten vom Typ "ntElement" ist. Wie komme ich an den Wert "Connected". |
AW: ntElement auslesen
Der erste ChildNode darin is nicht zufällig ein Text?
|
AW: ntElement auslesen
Entschuldigung. Quote war der falsche Tag. Code ist besser. Es kommt mir auf die drei Childes an:
Code:
Ich dachte auch, das das Text wäre. Aber
<NewConnectionStatus>Connected</NewConnectionStatus>
<NewLastConnectionError>ERROR_NONE</NewLastConnectionError> <NewUptime>33548</NewUptime>
Delphi-Quellcode:
aNode.ChildNodes['NewConnectionStatus'].IsTextElement
ist False und
Delphi-Quellcode:
aNode.ChildNodes['NewConnectionStatus'].NodeType
ist ntElement. |
AW: ntElement auslesen
Delphi-Quellcode:
<= der erste ChildNode :zwinker:
aNode.ChildNodes['NewConnectionStatus'].ChildNodes[0].IsTextElement
Das ist nunmal ein <Element>, auch wenn je nach Konfiguration und/oder XMLLib der Text auch über den Elternknoten ausgelesen werden kann. |
AW: ntElement auslesen
Code:
hat kein Child. Da gibt es "eine Exception der Klasse EListError mit der Meldung 'Listenindex überschreitet das Maximum (0)' aufgetreten". Sieht fast so aus, als müsste ich doch mit TStrings erledigen. :cry:
<NewConnectionStatus>Connected</NewConnectionStatus>
|
AW: ntElement auslesen
Hmmmm, dann muß die Lib den ntText aber aufgelöst haben und dann müsste der über .Text zugänglich sein. :gruebel:
|
AW: ntElement auslesen
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe die XMLIntf in den uses. Da ist der Text ein leerer String. Aber Localname und XML zeigen, dass es das richtige Child ist. Dein himiXML zeigt in der Demo den Typ Element und den Wert an. In Bild ist es aber ein anderes Beispiel. Vielleicht liegt es am IXMLNode. Das werde ich mir morgen mal ansehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 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