我有以下包含默认命名空间的 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 [可以看到一些希望。只需要对我当前的实现进行重大更改]
期待任何帮助。