xml – XPath查找具有特定子节点的所有元素
发布时间:2020-12-16 01:52:59 所属栏目:百科 来源:网络整理
导读:你能帮我找到所有的元素b在下面的例子中有子元素c? a b name = "b1"/b b name = "b2"c//b b name = "b3"/b/a xpath查询必须返回b2元素 第二个问题是 我想结合2个条件:我想获得具有name =“b2”的元素并且具有元素c 但这种语法似乎不工作: // b [@ name =
你能帮我找到所有的元素b在下面的例子中有子元素c?
<a> <b name = "b1"></b> <b name = "b2"><c/></b> <b name = "b3"></b> </a> xpath查询必须返回b2元素 第二个问题是
每当知道XML文档的结构时,最好避免使用// XPath伪运算符,因为它的使用可能导致大的无效率(遍历整个文档树)。
因此,我为提供的XML文档推荐此XPath表达式: /*/b[c] 这将选择作为XML文档的顶层元素的子元素并且具有名为c的子元素的任何b元素。 更新:OP刚刚几分钟前问了一个secons问题:
提供的XPath表达式确实选择所需的元素。 这里是基于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="//b[@name='b2' and c]"/> </xsl:template> </xsl:stylesheet> 将此转换应用于所提供的XML文档时: <a> <b name = "b1"></b> <b name = "b2"><c/></b> <b name = "b3"></b> </a> 将评估XPath表达式,并将正确选择的元素复制到输出: <b name="b2"> <c/> </b> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |