Xml 根据输入参数迭代次数改变XSLT转换
我已经发布了我的源XML和目标XML,我需要帮助使用XSLT转换它。我正在尝试将源XML集合拆分为不同的目标XML文档。我需要在运行时将迭代编号传递到XSLT中 源XML:Xml 根据输入参数迭代次数改变XSLT转换,xml,xslt,param,Xml,Xslt,Param,我已经发布了我的源XML和目标XML,我需要帮助使用XSLT转换它。我正在尝试将源XML集合拆分为不同的目标XML文档。我需要在运行时将迭代编号传递到XSLT中 源XML: 样本元素标题 一些数据 一些数据1 一些数据2 一些数据3 目标XML: 第一次迭代: 一些数据 第二次迭代: 一些数据1 第三次迭代: 一些数据2 第四次迭代: 一些数据3 以下XSLT: <?xml version="1.0" encoding="UTF-8"?> <xsl:styleshe
样本元素标题
一些数据
一些数据1
一些数据2
一些数据3
目标XML:
第一次迭代:
一些数据
第二次迭代:
一些数据1
第三次迭代:
一些数据2
第四次迭代:
一些数据3
以下XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sou="source.sample.com">
<xsl:param name="iteration" select="1"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="sou:Header"/>
<xsl:template match="sou:Elements">
<xsl:if test="count(preceding-sibling::sou:Elements) + 1 = $iteration">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<sou:rElement xmlns:sou="source.sample.com">
<sou:Header>
<sou:Elem1>SampleElementHeader</sou:Elem1>
</sou:Header>
<sou:Body>
<sou:Elem2>
<sou:Elem3>
<sou:ElemCollection>
<sou:Elements>
<sou:data>SomeData</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData1</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData2</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData3</sou:data>
</sou:Elements>
</sou:ElemCollection>
<sou:Elem3>
<sou:Elem2>
</sou:Elem2>
</sou:Elem3>
</sou:Elem3>
</sou:Elem2>
</sou:Body>
</sou:rElement>
<?xml version="1.0" encoding="UTF-8"?>
<sou:rElement xmlns:sou="source.sample.com">
<sou:Body>
<sou:Elem2>
<sou:Elem3>
<sou:ElemCollection>
<sou:Elements>
<sou:data>SomeData</sou:data>
</sou:Elements>
</sou:ElemCollection>
<sou:Elem3>
<sou:Elem2>
</sou:Elem2>
</sou:Elem3>
</sou:Elem3>
</sou:Elem2>
</sou:Body>
</sou:rElement>
和所需的输出XML(当
迭代设置为2到4时)。
请发布您尝试的XSLT。这解决了我的问题。谢谢。
<?xml version="1.0" encoding="UTF-8"?>
<sou:rElement xmlns:sou="source.sample.com">
<sou:Header>
<sou:Elem1>SampleElementHeader</sou:Elem1>
</sou:Header>
<sou:Body>
<sou:Elem2>
<sou:Elem3>
<sou:ElemCollection>
<sou:Elements>
<sou:data>SomeData</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData1</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData2</sou:data>
</sou:Elements>
<sou:Elements>
<sou:data>SomeData3</sou:data>
</sou:Elements>
</sou:ElemCollection>
<sou:Elem3>
<sou:Elem2>
</sou:Elem2>
</sou:Elem3>
</sou:Elem3>
</sou:Elem2>
</sou:Body>
</sou:rElement>
<?xml version="1.0" encoding="UTF-8"?>
<sou:rElement xmlns:sou="source.sample.com">
<sou:Body>
<sou:Elem2>
<sou:Elem3>
<sou:ElemCollection>
<sou:Elements>
<sou:data>SomeData</sou:data>
</sou:Elements>
</sou:ElemCollection>
<sou:Elem3>
<sou:Elem2>
</sou:Elem2>
</sou:Elem3>
</sou:Elem3>
</sou:Elem2>
</sou:Body>
</sou:rElement>