我发现这种查询 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];
这非常简单,可以用于其他命名空间,但是我如何对default命名空间? IE。xmlns=
像这样:
XmlObject xobj = XmlObject.Factory.parse(
"<a xmlns='testA'>\n" +
" <b xmlns='testB'>\n" +
" <x>12345</B:x>\n" +
" </b>\n" +
"</a>");
The xmlbeans 文档 http://xmlbeans.apache.org/docs/2.0.0/guide/conSelectingXMLwithXQueryPathXPath.html仅指named命名空间...有没有办法实现我正在寻找的东西?
我在以下位置找到了 XMLBeans 默认名称空间答案将 XPath 应用于带有或不带有命名空间的 XML http://web.archiveorange.com/archive/v/k1fCapxl2AygOSt0g2vh.
将其应用到您的示例中:
String nsDeclaration = "declare default element namespace 'testB';";
XmlObject bobj = xobj.selectPath(nsDeclaration + ".//b")[0];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)