デフォルトの名前空間を含む以下の 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 [希望が見えます。現在の実装に大きな変更が必要なだけです]
どんな助けも楽しみにしています。