import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.*;
import org.w3c.dom.*;
import org.xml.sax.InputSource;
class test {
XPathExpression expr = XPathFactory.newInstance().newXPath().compile(
"/A[namespace-uri() = 'some-namespace']"); // This does not select anything, replacing A with * does
// This XPath selects as expected (in all parsers mentioned): /*[namespace-uri() = 'some-namespace']
String xml
= "<A xmlns=\"some-namespace\"> </A>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
System.
out.
println("Number of nodes selected: " + nodes.
getLength());
for (int i = 0; i < nodes.getLength(); i++) {
System.
out.
println("Node name: " + nodes.
item(i
).
getNodeName()); }
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlckZhY3Rvcnk7CmltcG9ydCBqYXZheC54bWwueHBhdGguKjsKaW1wb3J0IG9yZy53M2MuZG9tLio7CmltcG9ydCBvcmcueG1sLnNheC5JbnB1dFNvdXJjZTsKCmNsYXNzIHRlc3QgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24gewoKICAgICAgICBYUGF0aEV4cHJlc3Npb24gZXhwciA9IFhQYXRoRmFjdG9yeS5uZXdJbnN0YW5jZSgpLm5ld1hQYXRoKCkuY29tcGlsZSgKICAgICAgICAgICAgIi9BW25hbWVzcGFjZS11cmkoKSA9ICdzb21lLW5hbWVzcGFjZSddIik7ICAvLyBUaGlzIGRvZXMgbm90IHNlbGVjdCBhbnl0aGluZywgcmVwbGFjaW5nIEEgd2l0aCAqIGRvZXMgCgogICAgICAgIC8vIFRoaXMgWFBhdGggc2VsZWN0cyBhcyBleHBlY3RlZCAoaW4gYWxsIHBhcnNlcnMgbWVudGlvbmVkKTogLypbbmFtZXNwYWNlLXVyaSgpID0gJ3NvbWUtbmFtZXNwYWNlJ10KCiAgICAgICAgU3RyaW5nIHhtbCA9ICI8QSB4bWxucz1cInNvbWUtbmFtZXNwYWNlXCI+IDwvQT4iOwoKICAgICAgICBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5IGZhY3RvcnkgPSBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CiAgICAgICAgZmFjdG9yeS5zZXROYW1lc3BhY2VBd2FyZSh0cnVlKTsKICAgICAgICBEb2N1bWVudCBkb2MgPSBmYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpLnBhcnNlKG5ldyBJbnB1dFNvdXJjZShuZXcgU3RyaW5nUmVhZGVyKHhtbCkpKTsKICAgICAgICBOb2RlTGlzdCBub2RlcyA9IChOb2RlTGlzdCkgZXhwci5ldmFsdWF0ZShkb2MsIFhQYXRoQ29uc3RhbnRzLk5PREVTRVQpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiBub2RlcyBzZWxlY3RlZDogIiArIG5vZGVzLmdldExlbmd0aCgpKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBub2Rlcy5nZXRMZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTm9kZSBuYW1lOiAiICsgbm9kZXMuaXRlbShpKS5nZXROb2RlTmFtZSgpKTsgICAgICAgIAogICAgICAgIH0KICAgIH0KfQ==