用于从 XML 模式中挑选和分组元素的 XSLT
XSLT for picking and grouping elements from XML schema
我有一个 XML 模式,我需要从每个节点过滤特定元素并将这些过滤元素分组为所需的 XML 格式。
XML架构如下-
<Roots>
<Root>
<Result>
<Row index="1">
<id>001</id>
<value>Test Value</value>
</Row>
<Row index="2">
<id>001</id>
<value>Test Value1</value>
</Row>
<Row index="3">
<id>001</id>
<value>Test Value2</value>
</Row>
<Row index="4">
<id>002</id>
<value>Test Value3</value>
</Row>
<Row index="5">
<id>002</id>
<value>Test Value4</value>
</Row>
<Row index="6">
<id>003</id>
<value>Test Value5</value>
</Row>
<Row index="7">
<id>003</id>
<value>Test Value6</value>
</Row>
<Row index="8">
<id>003</id>
<value>Test Value7</value>
</Row>
</Result>
</Root>
</Root>
我想 select 每个节点 <Row>
中的元素 <id> and <value>
按 <id>
分组。预期的 XML 架构如下 -
<html>
<body>
<table border="1">
<tr>
<td>001</td>
<td>Test Value</td>
<td>Test Value1</td>
<td>Test Value2</td>
</tr>
<tr>
<td>002</td>
<td>Test Value3</td>
<td>Test Value4</td>
</tr>
<tr>
<td>003</td>
<td>Test Value5</td>
<td>Test Value6</td>
<td>Test Value7</td>
</tr>
</table>
</body>
</html>
你能帮我弄一下上面的格式吗?
工作 XSLT 如下-
'<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Roots/Root/Result">
<html>
<body>
<table border="1">
<xsl:for-each-group select="Row" group-by="id">
<tr>
<td><xsl:value-of select="id"/></td>
<xsl:for-each select="current-group()">
<td><xsl:value-of select="value"/></td>
</xsl:for-each>
</tr>
</xsl:for-each-group>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>'
这是 XSLT 2.0 中的标准分组模式(我假设您使用的是 2.0,因为您没有指定)。
https://www.xml.com/pub/a/2003/11/05/tr.html
检查此 link 它将对您塑造算法以执行您想要的操作有很大帮助。
如果您可以共享 XSLT 代码,那么我们可以为您提供更多帮助。
祝你好运
我有一个 XML 模式,我需要从每个节点过滤特定元素并将这些过滤元素分组为所需的 XML 格式。
XML架构如下-
<Roots>
<Root>
<Result>
<Row index="1">
<id>001</id>
<value>Test Value</value>
</Row>
<Row index="2">
<id>001</id>
<value>Test Value1</value>
</Row>
<Row index="3">
<id>001</id>
<value>Test Value2</value>
</Row>
<Row index="4">
<id>002</id>
<value>Test Value3</value>
</Row>
<Row index="5">
<id>002</id>
<value>Test Value4</value>
</Row>
<Row index="6">
<id>003</id>
<value>Test Value5</value>
</Row>
<Row index="7">
<id>003</id>
<value>Test Value6</value>
</Row>
<Row index="8">
<id>003</id>
<value>Test Value7</value>
</Row>
</Result>
</Root>
</Root>
我想 select 每个节点 <Row>
中的元素 <id> and <value>
按 <id>
分组。预期的 XML 架构如下 -
<html>
<body>
<table border="1">
<tr>
<td>001</td>
<td>Test Value</td>
<td>Test Value1</td>
<td>Test Value2</td>
</tr>
<tr>
<td>002</td>
<td>Test Value3</td>
<td>Test Value4</td>
</tr>
<tr>
<td>003</td>
<td>Test Value5</td>
<td>Test Value6</td>
<td>Test Value7</td>
</tr>
</table>
</body>
</html>
你能帮我弄一下上面的格式吗? 工作 XSLT 如下-
'<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Roots/Root/Result">
<html>
<body>
<table border="1">
<xsl:for-each-group select="Row" group-by="id">
<tr>
<td><xsl:value-of select="id"/></td>
<xsl:for-each select="current-group()">
<td><xsl:value-of select="value"/></td>
</xsl:for-each>
</tr>
</xsl:for-each-group>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>'
这是 XSLT 2.0 中的标准分组模式(我假设您使用的是 2.0,因为您没有指定)。
https://www.xml.com/pub/a/2003/11/05/tr.html
检查此 link 它将对您塑造算法以执行您想要的操作有很大帮助。
如果您可以共享 XSLT 代码,那么我们可以为您提供更多帮助。
祝你好运