Подтвердить что ты не робот

Выберите элемент в пространстве имен с XPath

Я хочу выбрать самый верхний элемент в документе с заданным пространством имен (префикс).

В частности: у меня есть документы XML, которые либо начинаются с /html/body (в пространстве имен XHTML), либо с одним из нескольких элементов в определенном пространстве имен. Я действительно хочу вырезать /html/body и просто вернуть содержимое тела или весь корневой элемент с пространством имен.

4b9b3361

Ответ 1

В XPath 2.0 и XQuery 1.0 вы можете протестировать префикс пространства имен, используя функцию in-scope-prefixes() в предикате. например.

//*[in-scope-prefixes(.)='html']

Если вы не можете использовать v2, в XPath 1.0 вы можете использовать функцию namespace-uri() для тестирования против самого пространства имен. например.

//*[namespace-uri()='http://www.w3c.org/1999/xhtml']

Ответ 2

Я хочу, чтобы выражение XPath:

/html:html/html:body/node()|/foo:*

Где префикс "html" отображается в пространство имен XHTML, а префикс "foo" сопоставляется с моим целевым пространством имен.