Я пытаюсь извлечь один node из документа xml в android (java).
<?xml version="1.0" encoding="utf-8" ?>
<config:Manifest xmlns:config="http://leaflabs.com/manifest.config.xsd">
<config:Text config:name="siteowner" config:desc="Site owner" config:transform="title"/>
<config:Text config:name="siteowner1" config:desc="Site owner" config:transform="title"/>
</config:Manifest>
XPATH
config:Manifest/config:Text[@config:name='siteowner']
Я использую JAXP XPathFactory. Проблема, которую я получаю, всегда возвращается к нулю.
Я убедился, что мой xpath был правильно удостоверился, что мой конструктор документов NamespaceAware установлен в true, и я даже выполнил Пример (внизу страницы), которые реализуют NamespaceContext, но я все равно ничего не получаю.
Я посмотрел на postoverflow Post, но никто не ответил парню Ссылка
Что я делаю неправильно
Проблема в вашем коде factory не является пространством имен. Существует еще один поток, который разрешает эту проблему, Как использовать XPath для XML-документов, имеющих пространство имен по умолчанию
Предложите вам попробовать что-то вроде этого,
XPath xPath =. XPathFactory.newInstance() newXPath(); xPath.setNamespaceContext(новый MyNamespaceContext());
Не уверен на 100%, но я считаю, что вам нужен токен перед вами xpath:
Я бы попробовал следующее:
$this-/конфигурации: Manifest/конфигурации: Текст [@config: name= 'владельцы сайтов']
И если это не работает, попробуйте это:
/конфигурация: манифест/конфигурация: Текст [@config: name= 'владельцы сайты']
И если ни одна из этих работ не попробует это:
//конфиг: Manifest/конфигурации: Текст [@config: name= 'владельцы сайтов']
/config:Manifest/config:Text[@config:name='siteowner' . Если это приводит к пустому набору узлов, проверьте правильность привязки URI пространства имен.