Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
#1 · Zasláno: 3. 2. 2015, 21:30:56
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 |
#2 · Zasláno: 4. 2. 2015, 14:09:03
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 |
#3 · Zasláno: 4. 2. 2015, 19:02:49
juriad:
Zkouším sum(translate(//*[@id='c2']/table//tr/td[6], "Kč", "")) // skutečně tam vadí jen to Kč
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 |
#4 · Zasláno: 4. 2. 2015, 21:26:36
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 |
#5 · Zasláno: 4. 2. 2015, 21:59:18
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. |
||
Časová prodleva: 10 let
|
0