给出以下XML:
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
</catalog>
我想检查一下至少有一个节点是否具有例如'1982'的年份。类似的东西:
<xsl:if test="........" ><p>passed!</p></xsl:if>
答案 0 :(得分:5)
在XPath 1.0和Xpath 2.0中:
'1982' = /catalog/cd/year
<强>变体形式强>:
XPath 1.0:
1982 = /catalog/cd/year
XPath 2.0:
1982 = /catalog/cd/year/number()
The XPath =
operator 在其至少一个参数是节点集(或XPath 2.0中的序列)时非常强大。当且仅当节点集(序列)中至少一个节点的(雾化)值等于=
的另一个参数时,结果才为真。这正是这个问题所要求的。
答案 1 :(得分:1)
试试test =“index-of(/ catalog / cd / year,1982)”。
答案 2 :(得分:0)
怎么样:
/catalog/cd/year = 1982
如果左侧至少有一个项目“匹配”右侧的一个项目,则此比较(称为一般比较)运算符返回true。