С помощью VTD- XML я хочу найти все атрибуты, принадлежащие пространству имен, зная только его uri.
Вот мой код:
VTDGen vg = new VTDGen();
vg.setDoc("<root xmlns=\"urn:foo\" xmlns:nsBar=\"urn:nsBar\" nsBar:Baz=\"value\"/>".getBytes());
vg.parse(true);
VTDNav n = vg.getNav();
AutoPilot autoPilot = new AutoPilot(n);
autoPilot.selectXPath("//@*[namespace-uri()='urn:nsBar']");
//autoPilot.selectXPath("//@*[namespace-uri()='urn:foo']");
int r;
while( (r= autoPilot.evalXPath()) != -1) {
System.out.println("°°° " + n.toString(r));
}
Ниже код ничего не выводит. Если вы раскомментируете прокомментированную строку и прокомментируете предыдущую, вы получите следующее:
°°° nsBar:Baz
Однако nsBar:Baz
принадлежит пространству имен nsBar
. URI этого пространства имен - urn:nsBar
. Что не так с vtd- xml здесь?