0
我有使用XSLT 1.0到=>XSLT由每個元件內的屬性值1.0組節點
<Users groupid="1">
<User id="person1" name="ABC" parentid="person7" haschildinGroup="yes"/>
<User id="person2" name="xyz" parentid="person1" haschildinGroup="yes"/>
<User id="person4" name="PQR" parentid="person2" haschildinGroup="no"/>
<User id="person5" name="PQR" parentid="person1" haschildinGroup="no"/>
<User id="person3" name="LMN" parentid="bac3" haschildinGroup="no"/>
<User id="person6" name="PQR" parentid="person7" haschildinGroup="no"/>
</Users>
<Users groupid="3">
<User id="person7" name="ABC" parentid="person11" haschildinGroup="yes"/>
<User id="person6" name="PQR" parentid="person7" haschildinGroup="no"/>
<User id="person8" name="xyz" parentid="person1" haschildinGroup="no"/>
<User id="person3" name="LMN" parentid="bac3" haschildinGroup="yes"/>
<User id="person5" name="PQR" parentid="person3" haschildinGroup="no"/>
<User id="person4" name="PQR" parentid="person2" haschildinGroup="no"/>
</Users>
XML等這
<root>
<Users groupid="1">
<User id="person1" name="ABC" parentid="person7"/>
<User id="person2" name="xyz" parentid="person1"/>
<User id="person3" name="LMN" parentid="bac3"/>
<User id="person4" name="PQR" parentid="person2"/>
<User id="person5" name="PQR" parentid="person1"/>
<User id="person6" name="PQR" parentid="person7"/>
</Users>
<Users groupid="3">
<User id="person7" name="ABC" parentid="person11"/>
<User id="person8" name="xyz" parentid="person1"/>
<User id="person3" name="LMN" parentid="bac3"/>
<User id="person4" name="PQR" parentid="person2"/>
<User id="person5" name="PQR" parentid="person1"/>
<User id="person6" name="PQR" parentid="person7"/>
</Users>
</root>
我需要改造這
)我需要根據共享parentid和以上輸出xml解釋更多
2)需要將xml像縮進父母子關係(在第一個添加額外的空間)的值的組合HTML視圖
我試過的例子如在此這一點,但重點還沒有當前節點內的整個XML和 範圍
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="no"/> <xsl:key name="groups" match="User" use="@parentid" /> <xsl:variable name="Space">&nbsp;</xsl:variable> <xsl:variable name="addSpace" select="concat($Space,$Space)"/> <xsl:template match="/"> <html> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <xsl:for-each select="root/Users/User[generate-id(.)=generate-id(key('groups',@parentid)[1])]"> <xsl:call-template name="selectusers"></xsl:call-template> </xsl:for-each> </table> </html> </xsl:template> <xsl:template name="selectusers"> <xsl:for-each select="key('groups', @parentid)"> <tr> <xsl:value-of select="$addSpace" disable-output-escaping="yes"/><!--Works for only 1st Level need to add If--> <td> <xsl:value-of select="@id"/> </td> <td> <!--HasChild =:(--> </td> </tr> </xsl:for-each> </xsl:template> </xsl:stylesheet>
是你讓我的權利。只是爲了清楚地解釋我給出的輸出XML。 接受答案:) 謝謝 – subZero
快速問題是否有任何問題,如果我使用呼叫模板,而不是應用模板,因爲我需要在某處 – subZero
'呼叫模板'和'應用模板'是相當不同的,不是真的可以互換。如果您可以打開另一個問題來顯示您需要集成的位置,我們可以告訴您如何執行此操作。 – JLRishe