加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – XSLT – 将先前的同级元素与当前节点元素进行比较

发布时间:2020-12-16 07:59:57 所属栏目:百科 来源:网络整理
导读:我有这个XML文件: recursos recurso url="http://w3c.com" descripcionConsorcio W3C/descripcion tipoexterno/tipo idiomaingles/idioma contenidoGeneral/contenido unidadUnidad 2/unidad /recurso recurso url="http://html.com" descripcionEspecifica
我有这个XML文件:
<recursos>
    <recurso url="http://w3c.com">
        <descripcion>Consorcio W3C</descripcion>
        <tipo>externo</tipo>
        <idioma>ingles</idioma>
        <contenido>General</contenido>
        <unidad>Unidad 2</unidad>
    </recurso>
    <recurso url="http://html.com">
        <descripcion>Especificación HTML</descripcion>
        <tipo>externo</tipo>
        <idioma>castellano</idioma>
        <contenido>HTML</contenido>
        <version>4.01</version>
        <unidad>Unidad 3</unidad>
    </recurso>
</recursos>

我想比较一个“recurso”的前一个兄弟元素“unidad”与当前“recurso”的“unidad”,以检查它们是否不同。

我在尝试:

<xsl:if test="preceding-sibling::recurso[position()=1]::unidad != unidad">
</xsl:if>

但我知道这是非常错误的:(
我希望你能帮助我,非常感谢你。

几乎正确。
<xsl:if test="preceding-sibling::recurso[1]/unidad != unidad">
</xsl:if>

::是用于轴,而不是沿着路径移动(“进行位置步骤”)。在XPath术语中:

preceding-sibling::recurso[1]/unidad != unidad
'''''''''''''''''  ++++++++++ ++++++
                          ###
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~

'  = axis name       (optional,defaults to "child")
+  = node test       (required)
#  = predicate       (optional,for filtering)
~  = location step   (required at least once per select expression)

[1]是[position()= 1]的缩写。

子轴在位置步骤中隐含,所以这样

preceding-sibling::recurso[1]/unidad != unidad

相当于:

preceding-sibling::recurso[1]/child::unidad != unidad

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读