XML到HTML的XSLT
您好,我正在寻找用于生成HTML的XSLT,如下所示。 以下是转换的详细信息。 请提供你的意见XML到HTML的XSLT,html,xml,xslt,Html,Xml,Xslt,您好,我正在寻找用于生成HTML的XSLT,如下所示。 以下是转换的详细信息。 请提供你的意见 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>
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>
对于每个页面组,我需要创建一个
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>
在HTML中,应填充Li元素。
试验
每个页面的每个页面组下都应填充Ul。
-
测试角色1
-
测试角色2
XML:
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>
输出HTML预期值
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>
<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>
-
试验
-
测试角色1
-
测试角色2
-
项目
-
测试2 3
-
测试2 5
XSLT已尝试
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>
<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>
-
-
你离得不远。主要问题是,在要匹配页面组的模板中,您正在这样做
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>
<xsl:apply-templates select="pages"/>
如果确实要这样做,请同时匹配页面和页面组
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>
<xsl:apply-templates/>
尝试以下XSLT
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>
<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>
<li>
<xsl:value-of select="@title"/>
</li>
<ul>
<xsl:apply-templates/>
</ul>
</ul>
</xsl:template>
<xsl:template match="pages">
<li>
<xsl:value-of select="@role"/>
</li>
</xsl:template>
</xsl:stylesheet>
-
应用于XML时,将输出以下内容
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>
<ul>
<li>Test</li>
<ul>
<li>Test Role 1</li>
<li>Test Role 2</li>
<ul>
<li>Projects</li>
<ul>
<li>Rol 3</li>
<li>Rol 4</li>
</ul>
</ul>
</ul>
</ul>
- 试验
- 测试角色1
- 测试角色2
- 计划
- Rol 3
- Rol 4
我想你有点不明白你想要什么
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>
这一点越来越接近了,但您仍然无法得到您想要的,因为在一堆页面中,您似乎想要角色,在另一个描述中。这是可能的,但我不确定这是否是你想要的
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 version="1.0" encoding="ISO-8859-1"?>
<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>
<li>
<a><xsl:value-of select="@title"/></a>
</li>
<xsl:if test="pages | pagegroup">
<ul>
<xsl:apply-templates select="pages | pagegroup"/>
</ul>
</xsl:if>
</ul>
</xsl:template>
<xsl:template match="pages">
<li>
<a><xsl:value-of select="@role"/></a>
<xsl:if test="pagegroup">
<ul>
<li>
<xsl:value-of select="@title" />
</li>
</ul>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
-
-
根据您的结构,您需要一个递归模板,该模板将遍历所有页面组以创建LIs。您的实际输出是什么?