I have following XML
<group id="a"> <Name>Number One</Name> <setgroup> <refgroup ID="b"> <refgroup ID="c"> </setgroup> </group> <group id="b"> <Name>Number Two</Name> <setgroup> <refgroup ID="c"> <refgroup ID="e"> </setgroup> </group> <group id="c"> <Name>Number Three</Name> <setgroup> <refgroup ID="g"> <refgroup ID="f"> </setgroup> </group> As an output I need to have
<Product> <Name>Number One</Name> <Product> <Name>Number Two</Name> <Product> <Name>Number Three</Name> </Product> </Product> </Product> So basically, as soon as I've iterated through that node, my new xml shall not include in once again.
So I need to retree based on my xslt
what I have so far:
<Products> <xsl:for-each select="*:PIMXMLExport[fn:namespace-uri() eq '']/*:group[fn:namespace-uri() eq '']"> <Product> <Name> <xsl:for-each select="(./*:Name[fn:namespace-uri() eq '']/node())[fn:boolean(self::text())]"> <xsl:sequence select="fn:string(.)"/> </xsl:for-each> </Name> <xsl:for-each select="*:setgroup[fn:namespace-uri() eq '']/*:refgroup[fn:namespace-uri() eq '']"> <Product> <Name> <xsl:variable name="header_pos" select="@OIDRef"/> <xsl:value-of select="/PIMXMLExport/group[@asimoid = $header_pos]/Name"/> </Name> </Product> </xsl:for-each> </Product> </xsl:for-each> </Products>
No comments:
Post a Comment