Autor Zpráva
Kcko
Profil
Jen tak si něco zkouším a potřeboval bych menší radu.


výraz sum(//table[@class='vysledna']//tr/td[3]//text()) mi sečte čísla z konkrétních buňek v konkrétní tabulce = vše ok.
Pokud ovšem v té buňce není jen číslo ale např i nějaký text (např. 60 Kč), tak mi to vrací NaN

Nějak se probírám manuálem a nevím jak to jinak přetypovat na číslo.

Nevěděl by někdo?
juriad
Profil
Kcko:
Nešlo by použít funkci translate k vyhození všech znaků, která nejsou ciframi?
http://www.w3.org/TR/xpath/#function-translate
Kcko
Profil
juriad:
Zkouším

sum(translate(//*[@id='c2']/table//tr/td[6], "Kč", "")) // skutečně tam vadí jen to
a vrátí mi to invalid Xpath (je tedy fakt, že to zkouším pouze ve Firefoxu v doplňku FirePath, ale to by nemělo mít vliv).
juriad
Profil
Tam je problém v tom, že funkci aplikuješ na celou kolekci. Ty ji naopak chceš aplikovat na každý prvek zvlášť.
Ale myslím (po lehkém pročtení XML Path Language (XPath) Version 1.0), že to není ve verzi 1.0 možné.

Zkus se prokousat tímto, třeba to pomůže.
http://stackoverflow.com/questions/6539531/how-to-use-the-translate-xpath-function-on-a-node-set
Kcko
Profil
juriad:
Díky zkusím. Už jsem se dočetl jak na to ve verzi 2.0 (ale je to docela složité, resp. delší zápis, který se mi už nelíbí).
Jsou to jenom takové moje hrátky, XPath bych stejně použil jen na výběr a zbytek bych si sečetl v nějaké smyčce.

Přečtu si to, díky za ochotu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: