【发布时间】:2012-12-29 11:36:42
【问题描述】:
我在下面有一个包含默认命名空间的 XML
<?xml version="1.0"?>
<catalog xmlns="http://www.edankert.com/examples/">
<cd>
<artist>Stoat</artist>
<title>Future come and get me</title>
</cd>
<cd>
<artist>Sufjan Stevens</artist>
<title>Illinois</title>
</cd>
<cd>
<artist>The White Stripes</artist>
<title>Get behind me satan</title>
</cd>
</catalog>
我正在运行以下代码,期望得到一些结果
Element rootElem = new Builder().build(xml).getRootElement();
xc = XPathContext.makeNamespaceContext(rootElem);
xc.addNamespace("", "http://www.edankert.com/examples/");
Nodes matchedNodes = rootElem.query("cd/artist", xc);
System.out.println(matchedNodes.size());
但大小始终为 0。
我经历过
- https://stackoverflow.com/a/9674145/1160106 [我真的没有得到奇怪的 xpath 语法]
- http://www.edankert.com/defaultnamespaces.html#Jaxen_and_XOM [可以看到一些希望。只需要对我当前的实现进行重大更改]
期待任何帮助。
【问题讨论】:
-
这真的很有帮助 - stackoverflow.com/a/3439776/1160106。尝试答案的更新部分。
标签: java xpath xml-namespaces xom