Xml XSLT转换多个子元素的嵌套循环
我不熟悉XSLT转换。我被一个循环的问题困住了,需要团队的指导 这是我的XML:Xml XSLT转换多个子元素的嵌套循环,xml,xslt,Xml,Xslt,我不熟悉XSLT转换。我被一个循环的问题困住了,需要团队的指导 这是我的XML: <OUTPUT> <VECTOR ID="6"> <ELEMENT ID="1"> <CLASS ID="12345"> <OWNR_EMP>EMP1</OWNR_EMP> <OWNR_EMP_NUM>XXXX</O
<OUTPUT>
<VECTOR ID="6">
<ELEMENT ID="1">
<CLASS ID="12345">
<OWNR_EMP>EMP1</OWNR_EMP>
<OWNR_EMP_NUM>XXXX</OWNR_EMP_NUM>
</CLASS>
</ELEMENT>
<ELEMENT ID="2">
<CLASS ID="12345">
<OWNR_EMP>EMP2</OWNR_EMP>
<OWNR_EMP_NUM>YYYY</OWNR_EMP_NUM>
</CLASS>
</ELEMENT>
</VECTOR>
<VECTOR ID="6">
<ELEMENT ID="1">
<CLASS ID="54321">
<EMP_ID>EMP1</EMP_ID>
<EMP_DTLS>DTLS1</EMP_DTLS>
</CLASS>
</ELEMENT>
<ELEMENT ID="2">
<CLASS ID="54321">
<EMP_ID>EMP2</EMP_ID>
<EMP_DTLS>DTLS2</EMP_DTLS>
</CLASS>
</ELEMENT>
</VECTOR>
</OUTPUT>
EMP1
XXXX
EMP2
YYYY
EMP1
DTLS1
EMP2
DTLS2
以下是我尝试的XSLT:
<xsl:for-each select="/OUTPUT/VECTOR/ELEMENT">
<xsl:variable name="empid_1" select="CLASS/OWNR_EMP" />
<xsl:for-each select="CLASS">
<xsl:variable name="classid_2" select="@ID" />
<xsl:if test="string($classid_2) = '12345' ">
<xsl:variable name="empid_2" select="OWNR_EMP" />
<xsl:if test="string($empid_2) = string($empid_1) ">
<EMP>
<OWNR_EMP><xsl:value-of select="OWNR_EMP" /></OWNR_EMP>
<OWNR_EMP_NUM><xsl:value-of select="OWNR_EMP_NUM" /></OWNR_EMP_NUM>
</EMP>
</xsl:if>
</xsl:if>
<xsl:if test="string($classid_2) = '54321' ">
<xsl:variable name="empid_3" select="EMP_ID" />
<xsl:if test="string($empid_3) = string($empid_1) ">
<EMP_DETAIL>
<EMP_ID><xsl:value-of select="EMP_ID" /></EMP_ID>
<EMP_DTLS><xsl:value-of select="EMP_DTLS" /></EMP_DTLS>
</EMP_DETAIL>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
我的期望输出:
<OUTPUT>
<EMPLOYEE>
<EMP>
<OWNR_EMP>EMP1</OWNR_EMP>
<OWNR_EMP_NUM>XXXX</OWNR_EMP_NUM>
</EMP>
<EMP_DETAIL>
<EMP_ID>EMP1</EMP_ID>
<EMP_DTLS>DTLS1</EMP_DTLS>
</EMP_DETAIL>
</EMPLOYEE>
<EMPLOYEE>
<EMP>
<OWNR_EMP>EMP2</OWNR_EMP>
<OWNR_EMP_NUM>YYYY</OWNR_EMP_NUM>
</EMP>
<EMP_DETAIL>
<EMP_ID>EMP2</EMP_ID>
<EMP_DTLS>DTLS2</EMP_DTLS>
</EMP_DETAIL>
</EMPLOYEE>
</OUTPUT>
EMP1
XXXX
EMP1
DTLS1
EMP2
YYYY
EMP2
DTLS2
VECTOR标记包含类“12345”和“54321”的多个节点
第一类的元素1应该与第二类的元素1结合起来。您可以通过编辑您的问题来帮助我们显示您当前尝试过的任何XSLT。非常感谢。你说你被卡住了,我们很高兴帮助你摆脱困境,但我们不知道你被困在哪里,所以除了为你编写代码(这不是一种很好的教学方式),我们很难提供帮助。记住:StackOverflow是关于问题和答案的。你需要问一个问题,而不仅仅是请求帮助。这个例子模棱两可。请详细解释此处需要应用的逻辑。您可能会被卡住,因为您正在以一种紧迫的方式处理问题;很多如果和循环。声明性方法可能更合适。查看xsl:template和xsl:apply模板。稍后我将尝试添加一个示例。