Ich möchte XML-Dokument mit Standard-Namespace, aber kein Präfix zu manipulieren. Gibt es eine Möglichkeit, Xpath ohne Namespace-URI zu verwenden, als ob es keinen Namespace gäbe?
Ich glaube, es sollte möglich sein, wenn wir die NamespaceAware-Eigenschaft von documentBuilderFactory auf false setzen. Aber in meinem Fall funktioniert es nicht.
Ist mein Verständnis falsch oder mache ich einen Fehler im Code?Wie XPath auf XML-Dokumente mit Standard-Namespace verwenden
Hier ist mein Code:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
try {
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document dDoc = builder.parse("E:/test.xml");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nl = (NodeList) xPath.evaluate("//author", dDoc, XPathConstants.NODESET);
System.out.println(nl.getLength());
} catch (Exception e) {
e.printStackTrace();
}
Hier ist meine xml:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.mydomain.com/schema">
<author>
<book title="t1"/>
<book title="t2"/>
</author>
</root>
hat diese wie das gleiche Problem für eine FAQ Default XML namespace, JDOM, and XPath – belwood