XSLT1 - 测试所有选定节点是否具有特定属性

时间:2017-01-12 13:24:23

标签: xslt-1.0

给出以下示例xml:

<table>
    <tr>
        <td style="border-top:1px">
            <p class="bodytext">right</p>
        </td>
        <td style="border-top:1px">
            <p class="bodytext">left right</p>
        </td>
        <td style="border-top:1px">
            <p class="bodytext">left</p>
        </td>
    </tr>
    <tr>
        <td style="border-top:1px">
            <p class="bodytext">right</p>
        </td>
        <td style="border-top:1px">
            <p class="bodytext">left right</p>
        </td>
        <td style="border-top:1px">
            <p class="bodytext">left</p>
        </td>
    </tr>
</table>

我想检查 ALL 第一个TR的TD是否将style属性设置为border-top。

以下表达式显然不起作用:

<xsl:when test="tr[1]/td/@style[contains(.,'border-top')]">
 </xsl:when>

我使用XSLT1,有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

我在question找到了答案。

基本上,这是通过获取我们想要检查的所有节点并将该序列与我们需要的过滤序列进行比较来完成的。

所以在我的情况下:tr[1]/td[@style[contains(.,'border-top')]]=tr[1]/td

感谢Dimitre!