通过调用模板进行xslt分组

编程入门 行业动态 更新时间:2024-10-14 20:26:01
本文介绍了通过调用模板进行xslt分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我是xslt的新手,他试图学习如何使用键和模板来学习分组.

I am new to xslt and trying to learn how to learn grouping using keys and using templates.

有人可以帮助我如何在xslt中执行以下操作吗? 我必须从另一个模板调用一个模板来进行转换.

Can somebody help me on how can do the following in xslt. I have to call a template from another template to do the transformation.

谢谢

这是我的xml.

<Doc> <ExOrder>121</ExOrder> <Line> <Ordernumber>225</Ordernumber> <OrderID>1</OrderID> <Quantity>5</Quantity> </Line> <Line> <Ordernumber>225</Ordernumber> <OrderID>5</OrderID> <Quantity>5</Quantity> </Line> <Line> <Ordernumber>226</Ordernumber> <OrderID>2</OrderID> <Quantity>5</Quantity> </Line>

这是之后的样子.

<Doc> <Order> <Ordernumber>225</Ordernumber> <Line> <ID>1</ID> <ID>5</ID> </Line> </Order> <Order> <Ordernumber>225</Ordernumber> <Line> <ID>1</ID> <ID>5</ID> </Line> </Order> </Doc>

推荐答案

我将假设您实际想要的输出是:

I'm going to assume the output you actually want is:

<Doc> <Order> <Ordernumber>225</Ordernumber> <Line> <ID>1</ID> <ID>5</ID> </Line> </Order> <Order> <Ordernumber>226</Ordernumber> <Line> <ID>2</ID> </Line> </Order> </Doc>

由于您提供的示例输出没有意义.当在示例输入上运行时,此XSLT将产生上面的输出:

Since the sample output you provided makes no sense. This XSLT will produce the output above when run on your sample input:

<xsl:stylesheet version="1.0" xmlns:xsl="www.w3/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:key name="kOrder" match="Line" use="Ordernumber"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="/*"> <Doc> <xsl:apply-templates select="Line[generate-id() = generate-id(key('kOrder', Ordernumber)[1])]" /> </Doc> </xsl:template> <xsl:template match="Line"> <Order> <xsl:apply-templates select="Ordernumber" /> <Line> <xsl:apply-templates select="key('kOrder', Ordernumber)/OrderID" /> </Line> </Order> </xsl:template> <xsl:template match="OrderID"> <ID> <xsl:value-of select="."/> </ID> </xsl:template> </xsl:stylesheet>

更多推荐

通过调用模板进行xslt分组

本文发布于:2023-11-22 03:46:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1615854.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模板   xslt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!