我怎么能编辑这个xsl文件,以便它适用于所有浏览器

时间:2010-12-02 21:32:04

标签: xslt

我有一个包含xhtml片段的xsl文件。我需要删除它,以便它与浏览器兼容。我试过但它停止工作。这是原始的xsl:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:html="http://www.w3.org/1999/xhtml">
  <xsl:output omit-xml-declaration="yes" />
  <xsl:template match="messages">
    <html:ul>
      <xsl:apply-templates select="message" />
    </html:ul>
  </xsl:template>

  <xsl:template match="message[message]">
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li>
    <html:ul>
      <xsl:apply-templates select="message" />
    </html:ul>
  </xsl:template>

  <xsl:template match="message">
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li>
    <xsl:apply-templates select="message" />
  </xsl:template>
</xsl:stylesheet>

我尝试以这种方式删除xhtml片段,但它停止工作&amp;打印,'没有样式信息'。我做错了什么:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:output omit-xml-declaration="yes" />
  <xsl:template match="messages">
    <ul>
      <xsl:apply-templates select="message" />
    </ul>
  </xsl:template>
  <xsl:template match="message[message]">
    <li>message <xsl:value-of select="@emp_msg" /></li>
    <ul>
      <xsl:apply-templates select="message" />
    </ul>
  </xsl:template>

  <xsl:template match="message">
    <li>message <xsl:value-of select="@emp_msg" /></li>
    <xsl:apply-templates select="message" />
  </xsl:template>
</xsl:stylesheet>

3 个答案:

答案 0 :(得分:0)

我看到你有:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

尝试修复语法!

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

答案 1 :(得分:0)

如果您发布的示例是正确的,那么您遗漏了>元素的开始标记的<xsl:stylesheet>。需要说

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

请注意,Stack Overflow的语法突出显示有助于使其更加明显。

更新:好的...鉴于此,如果你还没有吉姆加里森所说的那样做,但是如果原件工作正常,你必须已经有了。

如果要通过HTTP检索XML源文件的内容类型,也可以尝试确保XML源文件的内容类型是XML。并尝试使用

<xsl:output method="html" />

(可能是omit-xml-declaration="yes")。

答案 2 :(得分:0)

要在浏览器中工作,您必须在XML文档的开头包含样式表链接Processing Instruction,如:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?>
<rootOfXmlDocument>
  ....

href=属性必须以浏览器可以解析它的方式指向样式表(即它必须是浏览器可以获取的URL)。