Verwendung von ms: xpath-Funktionen in XPathExpression

8

Ich versuche, Microsoft XPath-Erweiterungsfunktionen zu verwenden (z. B. ms: string-compare Ссылка ) innerhalb eines XPathExpression-Objekts.

Diese Funktionen sind Erweiterungen innerhalb der MSXML-Bibliothek, und wenn ich sie in einer XslCompiledTransform verwende (einfach den ms-Namespace hinzufügend), funktionieren sie wie ein Zauber:

%Vor%

Dann habe ich versucht, sie in einer XPathExpression zu verwenden:

%Vor%

Aber ich bekomme eine Ausnahme "XsltContext wird für diese Abfrage wegen einer unbekannten Funktion benötigt".

XsltContext ist ein spezieller XmlNamespaceManager, aber ich weiß nicht, ob es möglich ist, es ohne eine tatsächliche XslCompiledTransform (es ist abstrakt) zu instanziieren und es als meinen Ausdruckskontext zu verwenden.

Gibt es eine Möglichkeit, dies zu tun (oder eine andere Möglichkeit, ms: extensions in einem XPathExpression zu verwenden)?

    
Filini 23.02.2010, 17:58
quelle

2 Antworten

5

Diese mit MS vorangestellten Funktionen sind nicht in .NET Framework-Dom-Klassen enthalten. Sie müssen Ihre benutzerdefinierten Funktionen erstellen, um dasselbe zu tun.

Sie können den folgenden Beispielcode verwenden;

%Vor%

oder

%Vor%

Sie werden diese Klassen brauchen;

%Vor%     
ertan 06.01.2011 23:39
quelle
3

Sie können den kompilierten XPath verwenden oder dynamisch mit Linqtoxml und XElement:

%Vor%

Meine Vergleichsfunktion:

%Vor%     
roland 25.05.2013 12:45
quelle

Tags und Links