我正在尝试使用xsl文件来收集数据并格式化XML文件。 最终的XML将使用数据集作为图表函数。 该应用程序要求格式如下:
<dataset seriesname="Discount" showValues="0" color="FDC12E"
parentYAxis="P" numberPrefix="E">
<set value="112" />
</dataset>
我想用我的xsl调用替换112:
<xsl:value-of select="//*[contains(@name,'D1 OEE')]"/>
但是,无论何时我将上述调用置于Set Value中,它都会失败。 我试图将它声明为变量并调用变量,但也失败了。
这是没有调用的完整xsl文件:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="no" method="xml" version="1.0"
indent="yes"/>
<xsl:template match="/">
<graph PYAxisName="Amount" SYAxisName="Quantity" shownames="1"
showvalues="0" showLegend="1" rotateNames="1"
formatNumberScale="1" decimalPrecision="2"
limitsDecimalPrecision="0" divLineDecimalPrecision="1"
formatNumber="1" chartTopMargin="15">
<categories>
<category name="Packing 1" hoverText="Packing Line 1" />
<category name="Packing 2" hoverText="Packing Line 2" />
<category name="Workshop" hoverText="Workshop" />
<category name="IT Dept" hoverText="IT Dept" />
<category name="Filler Room" hoverText="Filler Room" />
<category name="Dryer 1" hoverText="Dryer 1" />
<category name="Dryer 2" hoverText="Dryer 2" />
<category name="Milk Intake" hoverText="Milk Intake" />
<category name="Evap 1" hoverText="Evap 1" />
<category name="Evap 2" hoverText="Evap 2" />
</categories>
<dataset seriesname="Amount" showValues="0" color="AFD8F8"
parentYAxis="P" numberPrefix="E">
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
</dataset>
<dataset seriesname="Discount" showValues="0" color="FDC12E"
parentYAxis="P" numberPrefix="E">
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
<set value="123" />
</dataset>
</graph>
</xsl:template>
</xsl:stylesheet>
这是输入XML的示例:
<Notification>
<item name="NotificationName"
type="Standard">New Notification24</item>
<item name="NotificationDescription" type="Standard" />
<item name="NotificationState"
type="Standard">OutsideControl</item>
<item name="StartTime"
type="Standard">12/4/2014 11:27:49 PM</item>
<item name="EndTime" type="Standard">1/1/1970 12:00:00 AM</item>
<item name="TriggerTime"
type="Standard">2014-12-04T23:27:49Z</item>
<item name="Priority" type="Standard">Normal</item>
<item name="State" type="Standard">OutsideControl</item>
<item name="NotificationInstanceID" type="Standard">52</item>
<item name="NotificationUniqueID"
type="Standard">b3cc2dd4-8fae-4384-b966-764fb9d9a077</item>
<item name="\\ABT\Fusion\Test Chart|D1 OEE"
type="AFAttribute">94.59624</item>
<item name="\\ABT\Fusion\Test Chart|D2 OEE"
type="AFAttribute">100</item>
<item name="\\ABT\Fusion\Test Chart|XML"
type="AFAttribute">D:\Fusion\Charts\fusion.xsl</item>
</Notification>
上面的XML还没有我要解析的所有参数,但最终我希望将这些项目传递给Set Value。
答案 0 :(得分:0)
尝试更换:
<set value="123" />
使用:
<set value="{//*[contains(@name,'D1 OEE')]}" />
或者最好:
<set value="{$myVar}" />
将myVar
定义为具有上述表达式的变量后。
请注意大括号表示使用属性值模板。