我有以下 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://www.fakedomain.com/sally.xsl"?>
以及sally.xsl中的以下内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="documentcollection/document">
<p>
<xsl:for-each select="rss/channel/item">
<xsl:value-of select="title"/><br />
<xsl:value-of select="description"/><br />
<xsl:value-of select="link"/><br />
</xsl:for-each>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
但是,浏览器显示 XML 时就好像 XSL 行不存在一样。您知道为什么浏览器会忽略 XSL 样式表吗?是不是样式表错了?
谢谢
最佳答案
I have the following XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="http://www.fakedomain.com/sally.xsl"?>
这不是一个格式良好的 XML 文档(不存在顶级元素),因此浏览器不这样对待它也就不足为奇了。
解决方案:
将您的“XML”更新为格式正确的 XML 文档,例如:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="file:///c:/temp/delete/xxx.xsl"?>
<t/>
在 c:\temp\delete\xxx.xsl
中使用此样式表:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
XXX
</xsl:template>
</xsl:stylesheet>
用IE打开XML文件时,浏览器显示转换结果:
XXX
关于java - 将 XSL 样式表嵌入 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763671/