Autor Zpráva
Timy
Profil
Mám funkci na transformaci CSS do XPath, jenže ona funkce nespolehlivě rozlišuje CSS třídy. Původní kód byl takový:

//*[contains(@class, 'trida')]


…což fungovalo blbě, protože si sice dokázalo najít jednu třídu, když bylo v class="" více tříd, ale když jsem hledal třídu „top“, našlo to i element s třídou „toplist“. Takže jsem ten XPath přepsal na tohle:

//[contains(concat(' ', @class, ' '), concat(' ', 'trida', ' '))]


Když to zkusím v online zkoušečce, tak to funguje. Ale když to hodím do DOMXPath::query v PHP, zahlásí to chybu: Warning: DOMXPath::query() [function.DOMXPath-query]: Invalid expression in C:\web\WebSegment.php on line 90. Na 90. řádku normálně volám tu query metodu:

$el = $xpathObject->query($xpath)->item($item);


Když tam nechám původní zápis, tak to funguje jak má. Netuší někdo, v čem by mohla být chyba? Případně jak jinak nasimulovat selekci tříd?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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