Czy istnieje sposób zastosowania funkcji XPath o nazwie starts-with
do nazwy węzła zamiast jego wartości? Chcę zaznaczyć FOObar
i FOObaz
węzły z poniższego dokumentu XML bez wybierania notFOO
węzła:Zapytanie XPath dla nazw węzłów pasujących do określonego wzorca
<?xml version="1.0" encoding="UTF-8" ?>
<RootNode>
<FOObar xmlns="http://sample.example.com">
<value>numOne</value>
</FOObar>
<FOObaz xmlns="http://sample.example.com">
<value>numTwo</value>
</FOObaz>
<notFOO xmlns="http://sample.example.com">
<value>numThree</value>
</notFOO>
</RootNode>
otrzymuję, że możliwe jest użycie starts-with
szukać w oparciu o węzły tekstowe, na przykład
//sample:value[starts-with(.,'num')]
Czy istnieje sposób zapisu następujących słów, które są poprawne pod względem składniowym?
//sample:[starts-with(node(),'FOO')]
To pytanie pochodzi z SSCCE, ale teraz, że pytanie jest, że wszystko jest po prostu kod bałaganu. Oczywiście nadal jest dostępny w wersji revision history.
Ach, szukałem czegoś podobnego 'local-name()' godzinami. Zaczynałem myśleć, że taka funkcja nie istnieje. FYI dla przyszłych odwiedzających, ta odpowiedź jest kompatybilna z przestrzenią nazw: '// sample: * [starts-with (local-name(), 'FOO')]' – Pops
Specyfikacja W3C dla 'local-name': http: // www .w3.org/TR/xpath/# function-local-name – Pops