0
我有问题。我想要的是总结对象并为每次迭代打印它们。我对XSLT很陌生,所以请客气。我所拥有的是这样的代码:XML/XSLT总和为 - 每个变量
<?xml version = "1.0" encoding = "Windows-1252"?>
<GPDUMP>
<ROUTE>
<ALL_ROUTEANDORDER>
<NUMBER>3</NUMBER>
<NO0>
<ROUTEANDORDER>
<FKCUSTOMERID>2</FKCUSTOMERID>
<SEQUENCENO>1</SEQUENCENO>
<STOPNO>1</STOPNO>
<SPLITKMDRIVING>13076</SPLITKMDRIVING>
</ROUTEANDORDER>
</NO0>
<NO1>
<ROUTEANDORDER>
<FKCUSTOMERID>4</FKCUSTOMERID>
<SEQUENCENO>2</SEQUENCENO>
<STOPNO>2</STOPNO>
<SPLITKMDRIVING>6204</SPLITKMDRIVING>
</ROUTEANDORDER>
</NO1>
<NO2>
<ROUTEANDORDER>
<FKCUSTOMERID>3</FKCUSTOMERID>
<SEQUENCENO>3</SEQUENCENO>
<STOPNO>3</STOPNO>
<SPLITKMDRIVING>4775</SPLITKMDRIVING>
</ROUTEANDORDER>
</NO2>
</ALL_ROUTEANDORDER>
</ROUTE>
</GPDUMP>
我想作为输出是这样的:
<CUSTOMERID>2</CUSTOMERID>
<DIST_FROM_PREVIOUS>13076</DIST_FROM_PREVIOUS>
<DIST_FROM_START>13076</DIST_FROM_START>
<CUSTOMERID>4</CUSTOMERID>
<DIST_FROM_PREVIOUS>6204</DIST_FROM_PREVIOUS>
<DIST_FROM_START>13076 + 6204</DIST_FROM_START>
<CUSTOMERID>3</CUSTOMERID>
<DIST_FROM_PREVIOUS>4775</DIST_FROM_PREVIOUS>
<DIST_FROM_START>13076 + 6204 + 4775</DIST_FROM_START>
正如你所看到的,DIST_FROM_START
应概括为如下过程。
我有这样的:
<xsl:for-each select="ALL_ROUTEANDORDER[1]/*[$index]" >
<xsl:variable name="kmFromStart" select="sum(ALL_ROUTEANDORDER/*[starts-with(name(),'NO')]/ROUTEANDORDER/SPLITKMDRIVING)"/>
<xsl:variable name="kmFromPrevious" select="ALL_ROUTEANDORDER/*[starts-with(name(),'NO')]/ROUTEANDORDER/SPLITKMDRIVING"/>
<xsl:text>From start</xsl:text><xsl:value-of select="$kmFromStart" />
<xsl:text>From previous </xsl:text><xsl:value-of select="$kmFromPrevious" />
</xsl:for-each>
希望有人得到我的想法,并能帮帮我!我搜索了几页,并尝试参数没有运气。我非常渴望得到这个工作!任何帮助都是好的!感谢:)
你说你想要的输出没有根节点,所以是无效的XML。此外,你是否真的希望三位顾客和他们的细节都在同一水平?更常见的是有一个''节点,它具有一个'id'属性和两个包含信息的子元素。你是否也希望添加这样的字面呢?还是你想在插入之前计算它们? –
Borodin
2013-05-10 19:45:23
另外,在整个数据中是否只有* 1 *'/ GPDUMP/ROUTE/ALL_ROUTEANDORDER'元素,还是你想为几个元素做这件事? – Borodin 2013-05-10 19:50:03