如何使用XSLT从XML中读取所有内部递归值
需要从递归XML结构的所有级别提取值。所有级别的结构都是相同的如何使用XSLT从XML中读取所有内部递归值,xml,xslt,xslt-1.0,wso2esb,xslt-grouping,Xml,Xslt,Xslt 1.0,Wso2esb,Xslt Grouping,需要从递归XML结构的所有级别提取值。所有级别的结构都是相同的 <regPackagingHierarchyList> <RegistrationPackagingHierarchy> <recordId>Level0</recordId> <regParentPackagingHierarchy> <RegistrationPackagingHierarchy> <re
<regPackagingHierarchyList>
<RegistrationPackagingHierarchy>
<recordId>Level0</recordId>
<regParentPackagingHierarchy>
<RegistrationPackagingHierarchy>
<recordId>level5</recordId>
<regParentPackagingHierarchy>
<RegistrationPackagingHierarchy>
<recordId>level4</recordId>
<regParentPackagingHierarchy>
<RegistrationPackagingHierarchy>
<recordId>level3</recordId>
<regParentPackagingHierarchy>
<RegistrationPackagingHierarchy>
<recordId>level2</recordId>
<regParentPackagingHierarchy>
<RegistrationPackagingHierarchy>
<recordId>level1</recordId>
</RegistrationPackagingHierarchy>
</regParentPackagingHierarchy>
</RegistrationPackagingHierarchy>
</regParentPackagingHierarchy>
</RegistrationPackagingHierarchy>
</regParentPackagingHierarchy>
</RegistrationPackagingHierarchy>
</regParentPackagingHierarchy>
</RegistrationPackagingHierarchy>
</regParentPackagingHierarchy>
</RegistrationPackagingHierarchy>
</regPackagingHierarchyList>
0级
五级
四级
三级
二级
一级
预期结果应采用以下格式
一级、二级、三级、四级、五级
1.0中的一种方式可以是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="/">
<xsl:for-each select="//regParentPackagingHierarchy//recordId">
<xsl:sort select="position()" order="descending" />
<xsl:value-of select="." />
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
,
编辑:
<xsl:value-of select="concat('Count(regPackagingHierarchyList) = ', count(//regPackagingHierarchyList))"/>
<xsl:value-of select="concat('Count(RegistrationPackagingHierarchy) = ', count(//RegistrationPackagingHierarchy))"/>
编辑2:
<xsl:value-of select="concat('Count(regPackagingHierarchyList) = ', count(//regPackagingHierarchyList))"/>
<xsl:value-of select="concat('Count(RegistrationPackagingHierarchy) = ', count(//RegistrationPackagingHierarchy))"/>
您是否有两个RegistrationPackagingHierarchy
元素是彼此的兄弟元素,或者每个父元素只有一个RegistrationPackagingHierarchy
子元素?它将始终是一个子元素@TimCThank。。@VebbieHow将子节点计数设为或时,其工作正常。预期输出为计数(RegPackageHierarchyList)=17@DhanaSekhar:在答案中添加了这个。@Vibbie,还有一个问题。这是重复的标记,在运行XSLT时,我将所有内容组合在一起。比如level1、level2、level3、level4、level5level1、level2、level3、level4、level5。你能帮我修一下吗。预期是在第一次迭代中,我应该得到迭代-1::level1,level2,level3,level4,level5迭代2:level1,level2,level3,level4,level5我将等待您的答复。这里更新了这是XMl结构如何成为父包列表父包列表父包列表