См.: Описание
Интерфейс | Описание |
---|---|
XPath |
XPath обеспечивает доступ к среде оценки XPath и выражениям. |
XPathExpression |
XPathExpression обеспечивает доступ к скомпилированным выражениям XPath. |
XPathFunction |
XPathFunction обеспечивает доступ к функциям XPath. |
XPathFunctionResolver |
XPathFunctionResolver обеспечивает доступ к набору определяемых пользователем XPathFunction s. |
XPathVariableResolver |
XPathVariableResolver обеспечивает доступ к набору определяемых пользователем переменных XPath. |
Класс | Описание |
---|---|
XPathConstants |
Константы XPath.
|
XPathFactory |
XPathFactory экземпляр может использоваться, чтобы создать XPath объекты. |
Исключение | Описание |
---|---|
XPathException |
XPathException представляет универсальное исключение XPath. |
XPathExpressionException |
XPathExpressionException представляет ошибку в выражении XPath. |
XPathFactoryConfigurationException |
XPathFactoryConfigurationException представляет ошибку конфигурации в a XPathFactory среда. |
XPathFunctionException |
XPathFunctionException представляет ошибку с функцией XPath. |
Этот пакет обеспечивает объектную модель нейтральный API для оценки выражений XPath и доступа к среде оценки.
Следующие стандарты XML применяются:
Язык XPath обеспечивает простой, краткий синтаксис для того, чтобы он выбрал узлы из XML-документа. XPath также обеспечивает правила для того, чтобы они преобразовали узел в объектной модели XML-документов (ДОМ) дерево к булеву, дважды, или строковое значение. XPath является определенным с помощью W3C языком и официальной рекомендацией W3C; W3C размещает Язык Пути XML (XPath) спецификация Версии 1.0.
XPath, запущенный в жизни в 1999 как дополнение к XSLT и языкам XPointer, но, позже стал популярным как автономный язык, поскольку единственное выражение XPath может использоваться, чтобы заменить много строк кода API ДОМА.
Выражение XPath составляется из пути расположения и одного или более дополнительных предикатов. Выражения могут также включать переменные XPath.
Следующее является примером простого выражения XPath:
/foo/bar
Этот пример выбрал бы <bar>
элемент в XML-документе, таком как следующее:
<foo> <bar/> </foo>
Выражение /foo/bar
пример пути расположения. В то время как пути расположения XPath напоминают пути файловой системы Стиля Unix, важное различие - то, что выражения XPath возвращают все узлы, которые соответствуют выражение. Таким образом, все три <bar>
элементы в следующем документе были бы выбраны /foo/bar
выражение:
<foo> <bar/> <bar/> <bar/> </foo>
Специальный оператор пути расположения, //
, выбирает узлы в любой глубине в XML-документе. Следующий пример выбирает все <bar>
элементы независимо от их расположения в документе:
//bar
Подстановочный оператор, *, заставляет все узлы элемента быть выбранными. Следующий пример выбирает все дочерние элементы a <foo>
элемент:
/foo/*
В дополнение к узлам элемента пути расположения XPath могут также узлы атрибута адреса, текстовые узлы, узлы комментария, и узлы инструкции обработки. Следующая таблица дает примеры путей расположения для каждого из этих типов узла:
Путь расположения | Описание |
/foo/bar/@id
|
Выбирает атрибут id из <bar> элемент |
/foo/bar/text()
|
Выбирает текстовые узлы <bar> элемент. Никакое различие не делается между оставленным и невышло из символьных данных. |
/foo/bar/comment()
|
Выбирает все узлы комментария, содержавшиеся в <bar> элемент. |
/foo/bar/processing-instruction()
|
Выбирает все узлы инструкции обработки, содержавшиеся в <bar> элемент. |
Предикаты учитывают совершенствование узлов, выбранных путем расположения XPath. Предикаты имеют форму [expression]
. Следующий пример выбирает все <foo>
элементы, которые содержат include
атрибут со значением true
:
//foo[@include='true']
Предикаты могут быть добавлены друг другу, чтобы далее совершенствовать выражение, такое как:
//foo[@include='true'][@mode='bar']
Следующий пример демонстрирует, как использовать API XPath, чтобы выбрать один или более узлов из XML-документа:
XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "/widgets/widget"; InputSource inputSource = new InputSource("widgets.xml"); NodeList nodes = (NodeList) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
В то время как выражения XPath избранные узлы в XML-документе, API XPath позволяет выбранным узлам быть объединенными в один из следующих других типов данных:
Boolean
Number
String
Требуемый тип возврата определяется a QName
параметр в вызове метода, используемом, чтобы оценить выражение, которое является любой звонком XPathExpression.evalute(...)
или к одному из XPath.evaluate(...)
методы удобства. Позволенные значения QName определяются как константы в XPathConstants
class; они:
XPathConstants.NODESET
XPathConstants.NODE
XPathConstants.STRING
XPathConstants.BOOLEAN
XPathConstants.NUMBER
Когда a Boolean
возвратитесь тип требуют, Boolean.TRUE
возвращается, если один или более узлов были выбраны; иначе, Boolean.FALSE
возвращается.
String
возвратитесь тип является удобством для того, чтобы получить символьные данные от текстового узла, узла атрибута, узла комментария, или узла инструкции обработки. Когда использующийся на узле элемента, значение дочерних текстовых узлов возвращается.
Number
возвратите попытки типа объединить текст узла к a double
тип данных.
Пути расположения XPath могут быть относительно определенного узла в документе, известном как context
. Рассмотрите следующий XML-документ:
<widgets> <widget> <manufacturer/> <dimensions/> </widget> </widgets>
<widget>
элемент может быть выбран со следующим кодом API XPath:
// parse the XML as a W3C Document DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = builder.parse(new File("/widgets.xml")); XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "/widgets/widget"; Node widgetNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
Со ссылкой на <widget>
элемент, относительное выражение XPath может теперь записанный, чтобы выбрать <manufacturer>
дочерний элемент:
XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "manufacturer"; Node manufacturerNode = (Node) xpath.evaluate(expression, widgetNode, XPathConstants.NODE);
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92