使用for-each可以避免使用两次apply-templates. 用于测试的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>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
输出:
将select中的xpath替换成/catalog/cd 仍然work.
直接查找title node, 并且在当前上下文内输出price node的value:
输出结果:( 后者不work)
xpath可以支持condition:
select=“catalog/cd[artist=‘Bob Dylan’]” - 只匹配artist值为Bob Dylan的cd node。
for-each也可以和choose结合使用,后者相当于ABAP里的CASE - WHEN 组合:
当price > 10时会高亮显示:
if同理: