基于条件的两个节点的XSL/XPATH和

基于条件的两个节点的XSL/XPATH和,xpath,xslt-2.0,Xpath,Xslt 2.0,下面是我的示例XML <Header> <id> 1234 <id> <type> abcd <type> <account> <code1>a11 </code1> <code2>a12 </code2> <expense> <cost> 10 </cost> <descript

下面是我的示例XML

<Header>
<id> 1234 <id>
<type> abcd <type>
<account>
    <code1>a11 </code1>
    <code2>a12 </code2>
    <expense>
        <cost> 10 </cost>
        <description> Travel </description>
    </expense>
        <expense>
        <cost> 30 </cost>
        <description> Travel </description>
    </expense>
    <expense>
        <cost> 20 </cost>
        <description> Hotel </description>
    </expense>
        <expense>
        <cost> 10 </cost>
        <description> Hotel </description>
    </expense>
</account>
</Header>

1234
abcd
a11
a12
10
旅行
30
旅行
20
酒店
10
酒店
我需要以XML格式显示结果,如下所示

<Header>
<id> 1234 <id>
<type> abcd <type>
<code1>a11 </code1>
<code2>a12 </code2>
<description> Travel </description>
<cost> 40 </cost> <!-- sum of cost nodes, if description is Travel -->
<description> Hotel </description>
<cost> 30 </cost> <!-- sum of cost nodes, if description is Hotel -->
</Header>

1234
abcd
a11
a12
旅行
40
酒店
30
如何根据条件在XSLT 2.0中编写成本总和?


<xsl:template match="Header/account">
 ...
  <cost><xsl:value-of select="sum(expense[contains(description, 'Travel')]/cost)"/></cost>
...
  <cost><xsl:value-of select="sum(expense[contains(description, 'Hotel')]/cost)"/></cost>
</xsl:template>
... ...
应该这样做,在我放置
的位置添加其他元素