xslt 检查标签中的第一个和最后一个值是否相等

独角兽

我有一个 XSL 文件包含与此类似的坐标:

<coordinates>
    12345,567,5
    56777,444,1
    67884,443,7
    12345,567,5
<coordinates>

现在我想比较坐标的第一个值和最后一个值(12345,567,5 必须等于最后一个)。如何使用 XSLT 完成此操作?

我已经尝试用 substring() 分割值,但坐标的长度是可变的。

马丁·霍南

好吧,使用tokenize来查找行然后比较:

<xsl:template match="coordinates">
    <xsl:variable name="lines" select="tokenize(., '\r?\n')[normalize-space()]"/>
    <xsl:copy>
        <xsl:sequence select="$lines[1] = $lines[last()]"/>
    </xsl:copy>
</xsl:template>

所以例如

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="coordinates">
        <xsl:variable name="lines" select="tokenize(., '\r?\n')[normalize-space()]"/>
        <xsl:copy>
            <xsl:sequence select="$lines[1] = $lines[last()]"/>
        </xsl:copy>
    </xsl:template>

</xsl:transform>

例如

<body>
<coordinates>
    12345,567,5
    56777,444,1
    67884,443,7
    12345,567,5
</coordinates>
<coordinates>
    12345,567,5
    56777,444,1
    67884,443,7
    12345,567,6
</coordinates>
</body>

产出

<body>
<coordinates>true</coordinates>
<coordinates>false</coordinates>
</body>

http://xsltransform.net/ehVYZN3/1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用XSLT获取每月的第一个和最后一个星期日

计算 XSLT 中每个父级的不同第一个子值元素

在 XSLT 中选择第一个第一个子元素

XSLT选择第一个匹配项

XSLT仅每个选择第一个元素

使用XSLT换行符和第一个值开头的空格将XML转换为CSV

返回数组XSLT的第一个非零值

如何使用XSLT将XML元素的第一个属性的值重命名?

XSLT 根据子节点的值在第一个节点之前插入节点

如何在XSLT 2.0中获取字符串数组的第一个值

XSLT 2-在源列表中查找第一个缺少的元素

如何使用XSLT 2.0在XML文档中查找第一个表

XSLT-如何判断具有特定属性值的元素是否是匹配系列中的最后一个

具有N个值的XSLT标签可以具有一个值的标签

从 xslt/xpath 中的另一个属性值获取一个属性的值

XSLT:如何用所有同级的串联代替第一个同级?

无法从 xslt 获取 //account[1] 的第一个出现元素

返回第一个结果后 BaseX XSLT 失败

XSLT:选择第一个节点并替换其文本

XSLT:for-each循环仅提供第一个alinea

在XSLT foreach循环中更改第一个div的类

使用 XSLT 3.0 跳过第一个节点并复制其余节点

XSLT 2.0:如何确定列表中是否存在至少一个值?

如何通过XSLT / XPATH选择一个特定值并将该值用于另一个标签?

如何使用 xsl/xslt 检查 xml 文件中节点的值是否总是从另一个修复节点的值中获取?

仅在Highcharts中显示第一个和最后一个xAxis标签

XSLT测试给定上下文中的后续标记是否为最后一个

是否可以将XSLT代码转换为另一个XSLT代码(元XSLT)?

XSLT:XML 第一个属性需要转换为具有第二个属性值的元素