每个人!
我正在基于一些 xml 数据文件构建一个网站,所以我选择使用 XSLT 来绑定浏览器中的样式表。
起初它工作得很好,但最近,随着模板变得越来越复杂,发生了一些奇怪的事情。
我使用“copy-of”元素将数据复制到样式表中。这是代码:
<div class="section1">
<xsl:copy-of select="article/bodydata/*" />
</div>
所以,基本上,我将“bodydata”节点的所有子元素复制到 <div /> 中。
但它不起作用。例如,我在 bodydata 中有一个 <img /> 元素,如果我在浏览器中访问 xml 文件,该图像不会出现。另一方面,如果我手动将“bodydata”元素复制到该 div 中,并将 .xsl 文件转换为 .html 文件,则该图像会显示出来。
所以,这是我的问题,我可以在浏览器中查看 xml 数据和 xsl 数据的组合输出吗?我需要任何扩展或什么?
以及关于可能出现什么问题的任何建议?我对 xslt 很陌生,所以我似乎误解了 XSLT 的真正作用。谢谢!
更新
为了说明这个问题,我写了一个小样本。
首先,我创建了一个示例 xml 数据文件:
<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="article.xsl"?>
<article>
<bodydata>
<center>
<img alt="sample" src="http://www.google.com/logos/classicplus.png" />
</center>
<p>
<data class="tts_data">
this is the paragraph.
</data>
</p>
<p>
<data class="tts_data">this is the second paragraph</data>
<data class="tts_data">more data</data>
<data class="tts_data">...</data>
</p>
</bodydata>
</article>
所以,你可以看到,“bodydata”元素中的所有节点都是需要在网页上显示的html元素。为了显示它,我创建了一个示例 xsl 文件。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex" />
</head>
<body>
<article>
<header>
header of the article
</header>
<section>
<xsl:copy-of select="article/bodydata/*" />
</section>
</article>
<footer>
footer part of the page
</footer>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果是这样 的:img 元素就这样消失了。
接下来,我将 bodydata 元素复制到部分部分,并形成了一个新的 html 文件。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex" />
</head>
<body>
<article>
<header>
header of the article
</header>
<section>
<center>
<img alt="sample" src="http://www.google.com/logos/classicplus.png" />
</center>
<p>
<data class="tts_data">
this is the paragraph.
</data>
</p>
<p>
<data class="tts_data">
this is the second paragraph,
</data>
<data class="tts_data">
more data
</data>
<data class="tts_data">...</data>
</p>
</section>
</article>
<footer>
footer part of the page
</footer>
</body>
</html>
这里的结果是: 图像出现了。
所以我想知道这里有什么问题。