我正在尝试将rss-doctype添加到使用xslt呈现的xml文档中。如何更改根元素?
目前的情况如下:
<!DOCTYPE html PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "about:legacy-compat">
我想:
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "about:legacy-compat">
这是我的outputnode:
<xsl:output
method="xml"
version="1.0"
encoding="UTF-8"
doctype-public="-//Netscape Communications//DTD RSS 0.91//EN"
indent="yes"
/>
答案 0 :(得分:1)
您必须包含DTD(请参阅http://www.stylusstudio.com/xsllist/200405/post70520.html并回答http://www.stylusstudio.com/xsllist/200405/post90520.html,其中David Carlisle指出了这一点)。以下是正确的语法 - 您将需要找到DTD
<xsl:output method="xml" indent="yes" encoding="UTF-8"
doctype-system="http://foo.org/dont.know.the.dtd"
doctype-public="-//Netscape Communications//DTD RSS 0.91//EN"/>
答案 1 :(得分:0)
以下是一个简单示例:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"
doctype-system="http://www.silmaril.ie/software/rss2.dtd"
doctype-public="-//Netscape Communications//DTD RSS 0.91//EN"/>
<xsl:template match="/">
<rss>
<channel/>
</rss>
</xsl:template>
</xsl:stylesheet>
使用此转换处理任何XML文档(未使用)时,会生成所需的正确结果:
<!DOCTYPE rss
PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://www.silmaril.ie/software/rss2.dtd">
<rss>
<channel/>
</rss>