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.