我正在测试 XSLT 身份转换,因此我随机选择了 www.w3schools.com 上的以下示例,因为它允许我在线尝试:
我将右侧窗格中的 XSLT 更改为身份转换:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
并尝试了一下。我发现的是/catalog/cd/title
节点不会被复制到输出中(但其他所有内容都会复制到输出中)。如果我把名字从/catalog/cd/title
to /catalog/cd/title1
(或任何其他名称)它确实复制节点。
所以我想知道 www.w3schools.com 上的 XSLT 实现是否存在错误,或者 XML 节点“标题”是否有一些特殊意义导致它无法被复制?我计划如上所述使用 XSLT 转换,但我想确保我知道任何问题......
w3schools 工具对于测试 XML 到 HTML 转换非常有用,因为它尝试在浏览器中将转换结果呈现为 HTML。通过身份转换,您不会创建任何 HTML,而是创建 XML。只有转换结果中的“title”元素在浏览器看来是已知但位置错误的 HTML 元素,因此不会在页面中显示。所有其他元素都是未知的,因此它们的文本内容被渲染。
基本上,给自己一个独立的 XSLT 处理器或 XML 编辑器,w3schools 工具除了 XML 到 HTML 转换之外,对于调试和测试任何东西都没有用处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)