我正在尝试从android(java)的xml文档中检索一个节点。
<?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。我得到的问题是每次都会返回null。
我确保我的xpath是正确的,确保我的文档构建器NamespaceAware设置为true,我甚至遵循了一个实现NamespaceContext的Example (在页面底部),但是我仍然什么也得不到。
我看了一个stackoverflow帖子,但是没有人回答Link这个家伙
我做错了什么?
发布于 2011-02-13 20:20:29
代码中的问题是工厂不能识别名称空间。有另一个线程可以解决这个问题,How to use XPath on xml docs having default namespace
建议你试试这样的东西,
XPath xPath = XPathFactory.newInstance().newXPath();xPath.setNamespaceContext(新MyNamespaceContext());
发布于 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‘
https://stackoverflow.com/questions/4346536
复制相似问题