嗨我正在尋找一個XSLT來生成HTML,如下所示。 以下是轉換的詳細信息。 請提供您的意見。XML到HTML的XSLT
對於每個PageGroup我需要創建一個
In HTML an Li element should be populated.
<li>
<a>Test</a>
</li>
And under each Pagegroup for every Page Ul should be populated.
<ul>
<li>
<a>Test Role 1</a>
</li>
<li>
<a>Test Role 2</a>
</li>
</ul>
XML:
<menuitems>
<pagegroup title="Test">
<pages id="1" url="Test1.aspx" description="Tes 1" type="1" role="Test Role 1"/>
<pages id="2" url="Test2.aspx" description="Tes 2" type="1" role="Test Role 2"/>
<pagegroup title="Projects">
<pages id="4" url="Test 2 3.aspx" description="Test 2 3" type="1" role="Rol 3"/>
<pages id="4" url="Test 2 5.aspx" description="Test 2 5" type="1" role="Rol 4"/>
</pagegroup>
</pagegroup>
</menuitems>
輸出HTML期待
<ul>
<li>
<a>Test</a>
</li>
<ul>
<li>
<a>Test Role 1</a>
</li>
<li>
<a>Test Role 2</a>
</li>
<ul>
<li>
<a>Projects</a>
</li>
<ul>
<li>
<a>Test 2 3</a>
</li>
<li>
<a>Test 2 5</a>
</li>
</ul>
</ul>
</ul>
</ul>
XSLTŧ ried
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="pagegroup">
<ul>
<xsl:apply-templates select="pages"/>
<li>
<xsl:value-of select="@title"/>
</li>
</ul>
</xsl:template>
<xsl:template match="pages">
<li>
<xsl:value-of select="@role"/>
<xsl:if test="pagegroup">
<ul>
<xsl:apply-templates select="pages"/>
<li>
<xsl:value-of select="@title" />
</li>
</ul>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
什麼根據你的結構,你會需要一個遞歸的模板,這將遍歷所有pagegroups到創建LIS。 – 2012-04-24 09:48:22
你是你的實際產出? – 2012-04-24 09:53:54