繁体   English   中英

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

[英]How do I select something with a blank namespace with Jaxen?

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

这个断言总是失败的。

我究竟做错了什么?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM