如何根据其他元素值+ XSLT
问题描述:
我有下面的XML阅读的元素,我想选择储蓄元素的值时,名称元素的值是“总”如何根据其他元素值+ XSLT
请让我知道我该怎么为这个特定的场景写xslt?
</ArrayOfCategoryData>
<CategoryData>
<Category>
<Category>
<Savingsdollar>0.00</Savingsdollar>
<Savingspercentage>0.00</Savingspercentage>
<Savingsusage>0.00</Savingsusage>
</Category>
</Category>
<Name>Refrigeration</Name>
</CategoryData>
<CategoryData>
<Category>
<Category>
<Savingsdollar>999.97</Savingsdollar>
<Savingspercentage>0.00</Savingspercentage>
<Savingsusage>9,998.04</Savingsusage>
</Category>
</Category>
<Name>Total</Name>
</CategoryData>
</ArrayOfCategoryData>
<table cellpadding='0' cellspacing='0'>
<tbody>
<tr>
<td style='border-left: none; border-bottom: none; width: 51px;'>
$ <xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingsdollar/text()"/>
</td>
<td style='border-bottom: none; width: 29px;'>
<xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingspercentage/text()"/>%
</td>
<td style='border-bottom: none;'>
<xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingsusage/text()"/>
</td>
</tr>
</tbody>
</table>
答
如果我申请这个
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="text()"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="CategoryData[Name='Total']">
<Total>
<xsl:value-of select="Category/Savings"/>
</Total>
</xsl:template>
到源XML,我得到:
<?xml version="1.0" encoding="UTF-8"?>
<Total>9,998.04</Total>
尝试与周围的XSLT一点我给你;-)
BEst regarsd, 彼得
+0
Peter,我无法在表格元素内调用
+0
我对XSTL和HTML表格不是很熟悉。我建议你使用源XML,XSLT和预期输出来打开一个新问题。最好的问候,彼得 – Peter 2015-03-19 12:23:42
您的意思是xpath? '/ CategoryData [Name ='Total'] // Savings/text()' – 2015-03-19 08:44:41
是的,我需要xpath或者某种方式我想从xslt中获得这个储蓄值,我复制了你给它的相同值并没有显示出值9.998.04用这个表达式 – 2015-03-19 09:05:54
我已经放置了我的实际xml文件,现在请给我一个xpath或任何条件来读取“Total”Name元素的任何储蓄元素值。 – 2015-03-19 09:12:30