//br/preceding-sibling::normalize-space(text())
otrzymuję nieprawidłowy wyrażenie XPath z Nokogirinokogiri: dlaczego ta ścieżka jest nieprawidłowa?
//br/preceding-sibling::normalize-space(text())
otrzymuję nieprawidłowy wyrażenie XPath z Nokogirinokogiri: dlaczego ta ścieżka jest nieprawidłowa?
znormalizować przestrzeń jest funkcją. Nie możesz go tam użyć.
Potrzebujesz zestawu węzłów.
może masz na myśli
//br/preceding-sibling::*
lub można użyć normalizować-przestrzeni w orzecznika, w nawiasach kwadratowych. Pomyśl o predykacie jako filtrze lub selektorze w zestawie węzłów. Więc można to zrobić:
//br/preceding-sibling::*[normalize-space()='Fred']
W języku angielskim, które przekłada się na „wszystkie elementy poprzednich <br>
w dokumencie, i dla których (znormalizowane) tekst jest«Fred»”. W tym dokumencie:
<html>
<p>
<h2>Fred</h2>
<br/>
</p>
<table>
<tr>
<td>
<br/>
</td>
</tr>
</table>
</html>
... wyrażenie xpath wybiera węzeł <h2>
.
Wyjaśniałem to z free XpathVisualizer tool available on codeplex.