我有以下xml:
<config xmlns="http://www.someurl.com">
<product>
<brand>
<content />
</brand>
</product>
</config>
我正在很好地阅读JDOM。
然而,当我尝试使用Jaxen抓取内容时,我似乎无法获得任何东西。
这是一个似乎不起作用的例子:
XPath xpath = new JDOMXPath("config");
SimpleNamespaceContext namespaceContext = new SimpleNamespaceContext();
namespaceContext.addNamespace("", "http://www.someurl.com");
xpath.setNamespaceContext(namespaceContext);
assert xpath.selectNodes(document).size() > 0 : "should find more than 0";
这个断言总是失败。
我做错了什么?
答案 0 :(得分:1)
您必须指定一个前缀。调用addNamespace(“hopfrog”,“http:// ...”); 然后制作XPath(“hopfrog:config”);
请记住,XML中的前缀不是真实数据模型的一部分。真实数据模型为每个元素和属性分配一个URL,可能是空白。您可以在XPath中使用任何前缀,只要它绑定到正确的URL即可。由于您希望它为空白的URL,因此您将前缀绑定到“空白”。