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)?
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%Tags und Links xpath extension-methods