有没有办法使用xpath获取整个树结构.例如,假设这是xml
<a> <b> <c> data </c> </b> </a>
<b> <c> data </c> </b>
到目前为止,我一直在使用VTD-XML和java来检索元素.这是我一直在使用的代码.
VTDGen vg = new VTDGen(); vg.setDoc(xmlString); vg.parse(true); VTDNav vn = vg.getNav(); Autopilot ap = new Autopilot(vn); ap.selectXPath(xPath); String data = ap.evalXPathToString();
解决方法
使用:
/*/node()
这将选择XML文档顶部元素的所有子节点.所有这些节点的集合都具有所需的子树结构,因为每个选定的元素都保留其整个子树(其中该元素是顶级节点).
基于XSLT的验证:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <xsl:copy-of select="/*/node()"/> </xsl:template> </xsl:stylesheet>
当此转换应用于提供的XML文档时:
<a> <b> <c> data </c> </b> </a>
评估XPath表达式并输出所选节点,产生所需的正确结果:
<b> <c> data </c> </b>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。