1

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

这个断言总是失败。

我究竟做错了什么?

4

1 回答 1

1

您必须分配一个前缀。拨打电话 addNamespace("hopfrog", "http://..."); 然后制作 XPath ("hopfrog:config");

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

于 2010-01-29T02:57:06.297 回答