używam dom4j do pracy XML w Javie, mój xml jest tak:dom4j selectNodes (arg) nie dają listę węzłów
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<abcd name="ab.catalog" xmlns="http://www.xyz.com/pqr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xyz.com/pqr ./abc.xyz.xsd">
<efg>
......
</efg>
<efg>
.....
</efg>
</abcd>
wtedy,
List<Node>list = document.selectNodes("/abcd/efg");
dostaje rozmiar listy zero. Czuję, że wynika to z przestrzeni nazw określonej w xml. Próbowałem dużo, ale nie osiągnąłem sukcesu.
@ Ian: thanxs, to działa, ale muszę zapytać, czy mam pobrać trochę więcej węzła lub węzła wartość w dziecko do węzła podrzędnego, a następnie próbowałem, jak to samo określone powyżej, jak> dla (węzeł węzła: węzły) { \t XPath xpath1 = document.createXPath ("// edx: nazwa/wartość-"); \t xpath1.setNamespaceURIs (uris); \t Węzeł nazwaNode = (węzeł) xpath1.selectSingleNode (węzeł); \t} ale daje on nazwęNode null. jak sprawić, by działało jak dom4j. wszelkie dane wejściowe będą znaczące. – user1808932
@ user1808932 '// edx: Nazwa/wartość-' to ścieżka _absolute_, która rozpocznie wyszukiwanie od węzła głównego dokumentu zawierającego 'węzeł'. Jeśli chcesz 'edx: Name' potomków bieżącego' węzła', musisz użyć względnej ścieżki '.// edx: Name/value-' (z wiodącą kropką). –