Otrzymuję węzeł zerowy, gdy próbuję parsować plik XML.Powrót XPath dla "węzła", gdy isNameSpaceAware i isValidating są "prawdziwe"
XPath xPath = XPathFactory.newInstance().newXPath();
Node node = null;
try {
node = (Node) xPath.evaluate(
"/mynode",
doc,
XPathConstants.NODE);
Jestem stoi ten problem tylko w CASE-
1. DocumentBuilderFactory- setNameSpaceAware prawda
2. DocumentBuilderFactory- setValidating jest prawdą.
Jeśli są ustawione na fałsz, otrzymuję poprawne wyniki. Czy ktoś może mi pomóc w zrozumieniu, jaka jest relacja ustawienia tych atrybutów na fałsz? (I zostały sprawdzone this pytanie, ale nie usunąć moje wątpliwości)
Oto XML-
<?xml version="1.0" encoding="UTF-8"?>
<mynode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.example.com" xsi:schemaLocation="http://www.example.com example.xsd">
<name>TargetName</name>
<desc>desc goes here</desc>
<pack>my.this</pack>
<object>my.ExampleObject</object>
<properties>
<attrib>
<name>id</name>
<value>ZZZ</value>
</attrib>
<attrib>
<name>ind</name>
<value>X</value>
</attrib>
</properties>
<children>
<child>
<name>childnodename</name>
<desc>description goes here</desc>
<invalues>
<scope>ALL</scope>
</invalues>
<outvalues>
<scope>ALL</scope>
</outvalues>
<akey>
<aname>AAA</aname>
<key></key>
</akey>
<msg>
<success>code1</success>
<failure>code2</failure>
</msg>
</child>
</children>
</mynode>
Tak. Mój plik XML używa przestrzeni nazw. Ale nie dostałem twojego drugiego punktu. Przepraszam, ale jestem początkującym w kwestii związanych z XPath. Czy możesz wyjaśnić, jak to zrobić? "" Twoje zapytanie XPath wydaje się tylko kwerendy do przestrzeni nazw emtpy, a więc nie otrzymasz wyniku z powrotem. Upewnij się, że używasz właściwej przestrzeni nazw i będzie działać " – Pramod