我一直在努力让我的XML / XSL转换工作。我有两个单独的文件可以工作,所以XSL不是我现在想要将它们组合成一个文件的问题。原因是我有一个应用程序将输出单个文件并使其在线或离线可用。当用户打开文件时,他们将看到对他们有意义的格式化文件。
我需要在下面的样式表中更改才能获得此内容?请注意,XSLT创建并缩进项目符号列表。
非常感谢提前 麦克
<?xml-stylesheet type="text/xml" href="#style1"?>
<!DOCTYPE document SYSTEM "document.dtd">
<document>
<head>
<xsl:stylesheet id="style1"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="element">
<li>
<xsl:value-of select="@text"/>
<xsl:if test="element">
<ul>
<xsl:apply-templates select="element"/>
</ul>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
</head>
<element text="Wedding Plan" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#804040">
<element text="Honeymoon" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Luggage bags" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Borrow or Buy?" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
</element>
<element text="Speech" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Points on tablet" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
<element text="Thanks" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Flowers" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Candice" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
<element text="Venue" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Paddy Ann" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Table settings" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
</element>
</element>
<element text="Introduction" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Short skirt - short enough to cover the basics" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
<element text="Humour" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="medical cabinet turned me into a toad, had to wait for kiss from princess" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
<element text="Sweetie pie does not refer to veronika!" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
</element>
<element text="Requirements" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="Dad" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000">
<element text="ID Book" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#000000" />
</element>
</element>
</element>
</document>
答案 0 :(得分:0)
将XSLT移出<head>
并添加正确的DOCTYPE
定义。
<?xml-stylesheet type="text/xml" href="#style1"?>
<!DOCTYPE document [ <!ATTLIST xsl:stylesheet id ID #REQUIRED> ]>
<document>
<xsl:stylesheet id="style1"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="element">
<li>
<xsl:value-of select="@text"/>
<xsl:if test="element">
<ul>
<xsl:apply-templates select="element"/>
</ul>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
<element text="Wedding Plan" checked="false" bold="false" bcolour="#FFFFFF" fcolour="#804040">
...
</element>
</document>
这是你应该得到的清单: