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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |