Probleme mit XPath-Ausdruck und MSXML 6.0 Parser
-
Hallo,
ich arbeite mit visual c++ und versuche xml dokument mit hilfen des msxml 6.0 parsers zu verarbeiten (version 6.10.1200.0). Unten hab ich mal ein paar beispiel xpath-anfragen mit hilfe der selectNodes methode gestellt.
Angeblich beherrscht die bibliothek ja xpath 1.0. Bei einigen Funktionen, die zur Spezifikation gehören, gibt es allerdings Laufzeitfehler.
MSXML::IXMLDOMDocumentPtr doc; MSXML::IXMLDOMNodeListPtr list; // .. initialisierung des com .. dokument laden .. list = doc->selectNodes("//*[contains('ab','a')]"); // Fehler! list = doc->selectNodes("//*[name()='knoten']"); // Fehler! list = doc->selectNodes("//*[text()='hallo']"); // Funktioniert!Hat jemand eine Idee warum das nicht funktioniert?
-
Ich habs hinbekommen. Falls jmd ähnliche Probleme bekommt, ich habe folgende Bibliothek eingebunden:
#import <msxml.dll>Da bei mir der MSXML 6.0 Parser (Version 6.10.1200.0) installiert ist und hier (http://support.microsoft.com/kb/269238) steht das die zugehörige dll die msxml.dll ist dachte ich es wäre alles ok. Es handelte sich aber um eine ältere Version des Parsers (aus c:/windows/system32), die abgesehen davon eigentlich auch XPath 1.0 unterstützen sollte, es aber nicht tut. Wahrscheinlich muss ich die aktuelle Version irgendwie anders einbinden, wie weiß ich auch nicht.
Ich habe das Problem umgangen in dem ich jetzt msxml6.dll benutze. Wäre schön wenn noch jemand rausfindet wie ich die aktuelle Version benutzen kann.
Gruß