![]() |
Xpath mit TXMLDocument verwenden
Hi,
ich habe ein XML Dokument bei dem ich Daten per Xpath selektieren möchte. Nach kurzer Suche soll man das so machen:
Delphi-Quellcode:
Als Parser möchte ich MSXML verwenden (ist auch eingestellt).
const ns = 'http://mein.namepspace.url';
procedure TForm1.Button1Click(Sender: TObject); var dl: IDOMNodeList; begin XMLDocument1.Active := true; with XMLDocument1.DOMDocument as IDOMNodeSelect do begin dl := selectNodes('//mpu:product[@id="{FB2A-4B-3C-19-3DA8A0}"]'); ShowMessage(inttostr(dl.length)); end; Führ' ich das nun aus, erscheint die Fehlermeldung "Reference to undeclared namespace prefix: 'mpu'". Das liegt wohl daran, dass //mpu:product statt //product verwendet wird. Nur im XML Dokument sieht das so aus:
Delphi-Quellcode:
Die XML Files bekomme ich so aus einem anderen System, ich hoffe aber mal dass daran nichts falsch ist.
<mpu:updates xmlns:mpu="http://mein.namepspace.url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mein.namepspace.url C:\updates.xsd">
<mpu:product name="prgname" id="{FB2A-4B-3C-19-3DA8A0}"> Kann mir jemand sagen wie ich den Namespace deklariere? Ich hab es mit
Delphi-Quellcode:
versucht, aber die Fehlermeldung erscheint trotzdem.
XMLDocument1.DocumentElement.DeclareNamespace('mpu', ns);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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