4
Мне нужно применить преобразование xsl, которое суммирует определенные значения узлов на основе значения одного из его узлов. Вот мой XML псевдо-код:xsl sum siblings на основе значения узла
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Message>
<Body>
<Order>
<Item>
<.../>
<Type>widget</Type>
<Qty>20</Qty>
<.../>
</Item>
<Item>
<.../>
<Type>gadget</Type>
<Qty>10</Qty>
<.../>
</Item>
<Item>
<.../>
<Type>widget</Type>
<Qty>5</Qty>
<.../>
</Item>
<Item/>
</Order>
</Body>
</Message>
Нужный результат величины суммирования всех предметов «виджета» типа является 25
<xsl:value-of select="sum(/Message/Body/Order/Item/Qty)"/>
приносит 35
Мои данные XSL таблицы стилей
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
version="2.0"
Спасибо, Fung, похоже, я был как бы преувеличиваю. возможно, это поможет кому-то другому. [введите описание ссылки здесь] [1] [ 1]: http://www.w3schools.com/XPath/xpath_examples.asp –
user1555096
@ user1555096 - В зависимости от ваших потребностей вы можете использовать 'not (Type = 'gadget')' вместо 'Type! = 'Gadget «'. Таким образом, вы по-прежнему включаете 'Qty', если' Item' не имеет 'Type'. Также +1 к Fung для хорошего ответа. –