我有这个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>
Run Code Online (Sandbox Code Playgroud)
我想将一个"recurso"的前一个兄弟元素"unidad"与当前"recurso"的"unidad"进行比较,以检查它们是否不同.
我在努力:
<xsl:if test="preceding-sibling::recurso[position()=1]::unidad != unidad">
</xsl:if>
Run Code Online (Sandbox Code Playgroud)
但我知道这是非常错误的:(我希望你能帮助我,非常感谢你.
Tom*_*lak 36
差不多正确.
<xsl:if test="preceding-sibling::recurso[1]/unidad != unidad">
</xsl:if>
Run Code Online (Sandbox Code Playgroud)
的::是轴,而不是沿路径移动("制作位置步骤").在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].
该child轴是在一个位置步骤隐式的,所以这
preceding-sibling::recurso[1]/unidad != unidad
Run Code Online (Sandbox Code Playgroud)
相当于:
preceding-sibling::recurso[1]/child::unidad != unidad
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25189 次 |
| 最近记录: |