for-each keyword

91 阅读1分钟

使用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>

clipboard1

输出:
clipboard2

将select中的xpath替换成/catalog/cd 仍然work.

直接查找title node, 并且在当前上下文内输出price node的value:
clipboard3

输出结果:( 后者不work)
clipboard4

xpath可以支持condition:

select=“catalog/cd[artist=‘Bob Dylan’]” - 只匹配artist值为Bob Dylan的cd node。

for-each也可以和choose结合使用,后者相当于ABAP里的CASE - WHEN 组合:

当price > 10时会高亮显示:
clipboard5
clipboard6

if同理:
clipboard7