我发现这种查询 XmlObject 以返回包含特定命名空间的元素的方法:
XmlObject xobj = XmlObject.Factory.parse(
"<a xmlns='testA'>\n" +
" <B:b xmlns:B='testB'>\n" +
" <B:x>12345</B:x>\n" +
" </B:b>\n" +
"</a>");
// Use xpath with namespace delcaration to find <B:b> element.
XmlObject bobj = xobj.selectPath(
"declare namespace B='testB'" +
".//B:b")[0];
这非常简单,可用于其他命名命名空间,但如何对 默认 命名空间执行相同操作?即
xmlns=
像这样: XmlObject xobj = XmlObject.Factory.parse(
"<a xmlns='testA'>\n" +
" <b xmlns='testB'>\n" +
" <x>12345</B:x>\n" +
" </b>\n" +
"</a>");
xmlbeans documentation 只指命名空间...有没有办法完成我正在寻找的东西?
最佳答案
我在 Applying XPath to an XML with or without namespace 找到了 XMLBeans 默认命名空间答案。
将其应用于您的示例:
String nsDeclaration = "declare default element namespace 'testB';";
XmlObject bobj = xobj.selectPath(nsDeclaration + ".//b")[0];
关于java - 如何通过 *default* 命名空间 XmlObject.selectPath()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19792820/