首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXP XPathFactory命名空间

JAXP XPathFactory命名空间
EN

Stack Overflow用户
提问于 2010-12-03 22:33:25
回答 2查看 3.5K关注 0票数 1

我正在尝试从android(java)的xml文档中检索一个节点。

代码语言:javascript
复制
<?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

代码语言:javascript
复制
config:Manifest/config:Text[@config:name='siteowner']

我使用的是JAXP XPathFactory。我得到的问题是每次都会返回null。

我确保我的xpath是正确的,确保我的文档构建器NamespaceAware设置为true,我甚至遵循了一个实现NamespaceContext的Example (在页面底部),但是我仍然什么也得不到。

我看了一个stackoverflow帖子,但是没有人回答Link这个家伙

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-13 20:20:29

代码中的问题是工厂不能识别名称空间。有另一个线程可以解决这个问题,How to use XPath on xml docs having default namespace

建议你试试这样的东西,

XPath xPath = XPathFactory.newInstance().newXPath();xPath.setNamespaceContext(新MyNamespaceContext());

票数 4
EN

Stack Overflow用户

发布于 2010-12-03 22:37:30

不是100%确定,但我相信你需要在你的xpath语句前面有一个标记:

我会尝试以下几点:

$this/config:Manifest/config:Text@config:name='siteowner‘

如果这不起作用,试试这个:

/config:Manifest/config:Text@config:name='siteowner‘

如果这两种方法都不起作用,请尝试以下方法:

//config:Manifest/config:Text@config:name='siteowner‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4346536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档