在xsl中,我们可以在循环中为每个"写入"两个条件.例如,而不是
<xsl:when test="/document/line[
(substring(field[@id='0'], 1,3)='MAR')
] and
/document/line[
contains(substring(field[@id='0'],123,4),'0010')
]">
Run Code Online (Sandbox Code Playgroud)
我们可以写:
<xsl:for-each select="/document/line[
contains(substring(field[@id='0'], 1,3),'MAR')
] and
/document/line[
contains(substring(field[@id='0'],123,4),'0010')
]">
Run Code Online (Sandbox Code Playgroud)
最好的祝福
从评论更新
<xsl:for-each select="/document/line[
contains(substring(field[@id='0'], 1,3),'MAR')
and contains(substring(field[@id='0'],123,4),'0010')
]">
Run Code Online (Sandbox Code Playgroud)
blu*_*ish 10
如果问题是"是否可以检查for-each的select属性中的2个条件",答案是:NO.因为
表达式必须求值为节点集.(来自ZVON)
因此,select的数据类型必须是节点集而不是布尔值.
但是,如果要在a中选择两个节点集xsl:for-each或xsl:template(后者更好)等,可以使用union运算符(|):
<xsl:for-each select="/document/line[
contains(substring(field[@id='0'], 1,3),'MAR')
] |
/document/line[
contains(substring(field[@id='0'],123,4),'0010')
]">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27803 次 |
| 最近记录: |