![]() |
[MSXML] - Existiert ein Wert?
Wie kann ich überprüfen, ob bestimmte werte gesetzt wurden... Ansonsten gibt es nämlich immer unschöne Exceptions!
Beispiel: Zitat:
|
Re: [MSXML] - Existiert ein Wert?
Mit einem passenden Schema und einer Validierung. Stimmt dann mit der XML-Datei bzw. mit dem XML-Code etwas nicht, meckert der Parser von sich aus unter Angabe des Fehlers und der Zeilennummer. ;)
Abgesehen davon bliebe nur ein "selectSingleNode"-Test, bei dem du das Ergebnis auf null/nil prüfst. |
Re: [MSXML] - Existiert ein Wert?
Zitat:
Zitat:
|
Re: [MSXML] - Existiert ein Wert?
Hi,
Mathias meint, du sollst ein XLST bzw. DTD (keine Ahnung, was von beiden jetzt genau das Richtige ist) anlegen und in deiner XML-Datei angeben. Wenn nun eine Node nicht existieren sollte, dann wird der Parser beim Laden der Datei meckern, weil die Datei nicht dem Schema aus der XLST-Definition entspricht. Chris |
Re: [MSXML] - Existiert ein Wert?
Zitat:
Hier darf ich mal lobend den XmlSerializer aus dem .NET Framework erwähnen. Auf der Grundlage von entsprechenden Attributen kann man seine Klassen als XML-Datei speichern lassen, wobei sich bestimmte Eigenschaften als optional deklarieren lassen, die (wenn der Standardwert aktiv ist) dann auch gar nicht in der Datei auftauchen. Umgekehrt liest der XmlSerializer die XML-Datei wieder ein und erzeugt daraus die notwendigen Klassen zur Weiterverarbeitung im Programm. Gutes Anwendungsbeispiel: Adressmanager, DVD-"Datenbank" u.ä. Natürlich kann man die XML-Datei vor dem Bearbeiten auch erst mal per Schema validieren lassen, um Fehlermeldungen abzufangen. Ansonsten Suchfunktion: ![]() |
Re: [MSXML] - Existiert ein Wert?
Delphi-Quellcode:
var
ElementAuthor, ElementRoot : IXMLDOMElement; begin ... // XPath Ausdruck verwenden ElementAuthor := ElementRoot.selectSingleNode('./author') as IXMLDOMElement; if assigned(ElementAuthor) then ShowMessage(ElementAuthor.Text); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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