xpath și c #

voturi
7

Am încercat să creeze o aplicație Winform care caută printr-un doc XML. pentru căutarea mea am nevoie pentru a converti atributul XML în starea XPath la litere mici, folosind litere mici () funcția XPath. acest lucru cauzează o problemă legată de spațiul de nume funcției.

Am încercat să adăugați spațiul de nume manuala:

        XmlNamespaceManager nsMgr = new XmlNamespaceManager(prs.Doc.NameTable);
        nsMgr.AddNamespace(fn, http://www.w3.org/2005/02/xpath-functions);
        XmlNodeList results = prs.Doc.SelectNodes(//function[starts-with(fn:lower-case(@name),' + txtSearch.Text + ')],nsMgr);

dar încă mă excepție: XsltContext este necesară pentru această interogare din cauza unei funcții necunoscute.

Întrebat 25/02/2009 la 20:11
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
4

fn: minusculă este definit în XQuery 1.0 și XPath 2.0 . XSLT 2.0 lucreaza cu XPath 2.0.

AFAIK, .NET nu are suport XPath 2.0 încă. și versiunea XSLT de la NET este 1.0 la fel de bine nu încă 2.0.

Publicat 25/02/2009 la 20:22
sursa de către utilizator

voturi
3

Cred că CodeMelt este corectă și devine mea +1, dar , probabil, Microsoft ms: string-comparare funcția de extensie (cu opțiunea sensibile la majuscule) poate ajuta la rezolvarea problemei?

Publicat 25/02/2009 la 21:09
sursa de către utilizator

voturi
5

lower-case()Funcția este definită pentru XPath 2.0 .

In XPath 1.0 pentru a converti litere la litere mici se poate utiliza în continuare translate()funcția după cum se arată mai jos:

translate(@attrName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',                                       'abcdefghijklmnopqrstuvwxyz')

Publicat 26/02/2009 la 00:54
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more