Разрешение запроса Xpath - PullRequest
       3

Разрешение запроса Xpath

3 голосов
/ 21 февраля 2012

Привет У меня есть сомнения, связанные с XPath.

Мой xml-файл выглядит следующим образом.

<?xml version="1.0" encoding="UTF-8"?>

<name xmlns="http://localhost/book" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost/book books.xsd">
Java and XML
</name>

вот запрос xpath и его результат

/* - возвращает элемент "имя"

/*/text() - возвращает текст «Java и XML»

/name - без результата

/name/text() - без результата

Почему указание имени не дает никакого результата?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Это потому, что элемент name объявлен в http://localhost/book.Поэтому в запросе XPath вы должны указать это.Как правило, вы должны перейти к пространству имен вашего движка XML и его префиксу, а затем запросить ваш XML, используя полное имя, например:

/ns:name/text()

Однако вы можете использовать другой метод, задающий пространство имен в запросе, например:

/*[local-name() = 'name' and namespace-uri() = 'http://localhost/book']
0 голосов
/ 21 февраля 2012

Прочтите о NamespaceManager и о том, как использовать его в EditX здесь : http://www.japisoft.com/doc-editix/manual/index.html#mozTocId544189

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...