如何在单个文档中使用XML和XSL

时间:2013-12-30 08:48:04

标签: xml xslt-1.0

我一直在努力让我的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>

1 个答案:

答案 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>

这是你应该得到的清单:

enter image description here