如何使用Jaxen选择具有空白名称空间的内容?

时间:2010-01-29 01:55:33

标签: java xml jdom

我有以下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";

这个断言总是失败。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您必须指定一个前缀。调用addNamespace(“hopfrog”,“http:// ...”); 然后制作XPath(“hopfrog:config”);

请记住,XML中的前缀不是真实数据模型的一部分。真实数据模型为每个元素和属性分配一个URL,可能是空白。您可以在XPath中使用任何前缀,只要它绑定到正确的URL即可。由于您希望它为空白的URL,因此您将前缀绑定到“空白”。

相关问题