Я просмотрел пару предыдущих вопросов о том, как выбрать следующего брата, но, похоже, не могу этого сделать, когда пытаюсь игнорировать пространство имен для выбора следующего элемента.
Это пример XML
<root xmlns:foo="http://www.foo.org/">
<foo:singers>
<foo:singer>Tom Waits</foo:singer>
<foo:value>4000</foo:value>
<foo:singer>B.B. King</foo:singer>
<foo:value>2000</foo:value>
</foo:singers>
</root>
Я хочу получить значение после узла на основе его значения, например, 4000 после Тома Уэйтса.
Что у меня естьпока что
//*[local-name()='singer' and text() = 'Tom Waits']/following-sibling::*//*[local-name() = 'value']
К сожалению, это не работает для меня.
Я могу сделать что-то вроде
//*[local-name()='singer' and text() = 'Tom Waits']/following-sibling::foo:value/text()
, и это работает, но я бы предпочел бытьвозможность игнорировать пространство имен 'foo'.