ciao a tutti ragazzi, vi scrivo perchè ho un grosso problema riguardo all'esecuzione di espressioni xpath su documenti xml.
mi spiego meglio; ho scritto il seguente codice:
codice:XmlTextReader reader = new XmlTextReader(@"c:\book.xml"); XmlDocument doc = new XmlDocument(); doc.Load(reader); XmlNodeList nodeList; XmlElement root = doc.DocumentElement; // nodeList = root.SelectNodes("/bookstore/book/price[text()>'9.00']"); <-- con questa va nodeList = root.SelectNodes("/bookstore/book/price[text()='11.99']"); // <-- così non va Console.Write(nodeList.Count.ToString());
il programma lavora su un file xml così strutturato
codice:<bookstore> <book> <price>11.99</price> <author>..</author> <title>..</title> .. .. </book> .. e altri book </bookstore>
il problema sostanziale è che se eseguo la seguente query:
nodeList = root.SelectNodes("/bookstore/book/price[text() >'11.99']");
il nodeList.Count mi restituisce il numero corretto di prezzi che sono maggiori di 11.99; viceversa se provo ad eseguire una query esatta ossia:
nodeList = root.SelectNodes("/bookstore/book/price[text()='11.99'] ");
il nodeList.Count mi restituisce come valore 0 nonostante ci sia più di un prezzo uguale a 11.99. la stessa cosa succede con il != ; in pratica non riesce proprio a lavorare sulle stringhe.
Qualcuno mi può dare una mano?
Non so davvero dove andare a sbattere la testa.

Rispondi quotando
