在XSLT中使用XPath获得当前节点的下一个节点

toutou131415 2016-04-08 12:30:20
大家好,我想用xslt(xpath)把Input.xml转换为Output.xml.

Input.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row>
<value/>
<value>Current</value>
</row>
<row>
<value>Total Value</value>
<value>0.2</value>
</row>
<row>
<value>Market Value </value>
<value>0.5</value>
</row>
<row>
<value/>
<value/>
</row>
<root>

Output.xml :
<balance>
<Total Value>0.2</Total Value>
<Market Value>0.5</Market Value>
</balance>

已经尝试用一下的代码装换,但是输出结果是ErrorOutPut.xml. 把所有的value
同级节点都取出来了,请各位大神帮帮忙,谢谢了
<balance>
<xsl:for-each select="root/row">
<xsl:choose>
<xsl:when test="*:value = 'Total Value'">
<totalAcctVal>
<xsl:value-of select="//./following-sibling::value"/>
</totalAcctVal>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</balance>

ErrorOutPut.xml

<?xml version="1.0" encoding="UTF-8"?>
<balance>
<totalAcctVal>Current 0.2 0</totalAcctVal>
</balance>

...全文
381 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2016-04-09
  • 打赏
  • 举报
回复
你遍历的是row节点,你要取第二个value,可以 <balance> <xsl:for-each select="root/row"> <xsl:choose> <xsl:when test="value = 'Total Value'"> <totalAcctVal> <xsl:value-of select="value[2]"/> </totalAcctVal> </xsl:when> </xsl:choose> </xsl:for-each> </balance>

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧