XSLT 身份转换

Kev*_*vin 3 xml xslt

我正在测试 XSLT 身份转换,因此我随机选择了 www.w3schools.com 上的以下示例,因为它允许我在线尝试:

\n\n

http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog_apply

\n\n

我将右侧窗格中的 XSLT 更改为身份转换:

\n\n
<?xml version="1.0" encoding="ISO-8859-1"?>\n<!-- Edited by XMLSpy\xc2\xae -->\n<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\n\n    <xsl:template match="@*|node()">\n        <xsl:copy>\n            <xsl:apply-templates select="@*|node()"/>\n        </xsl:copy>  \n    </xsl:template>\n\n</xsl:stylesheet>\n
Run Code Online (Sandbox Code Playgroud)\n\n

并尝试了一下。我发现/catalog/cd/title节点不会被复制到输出中(但其他所有内容都会复制到输出中)。如果我将名称从 更改/catalog/cd/title/catalog/cd/title1(或任何其他名称),它会复制节点。

\n\n

所以我想知道 www.w3schools.com 上的 XSLT 实现是否存在错误,或者 XML 节点“标题”是否有一些特殊意义导致它无法被复制?我计划如上所述使用 XSLT 转换,但我想确保我知道任何问题...

\n

Mar*_*nen 5

w3schools 工具对于测试 XML 到 HTML 转换非常有用,因为它尝试在浏览器中将转换结果呈现为 HTML。通过身份转换,您不会创建任何 HTML,而是创建 XML。只有转换结果中的“title”元素在浏览器看来是已知但位置错误的 HTML 元素,因此不会在页面中显示。所有其他元素都是未知的,因此它们的文本内容被渲染。

基本上,给自己一个独立的 XSLT 处理器或 XML 编辑器,w3schools 工具除了 XML 到 HTML 转换之外,对于调试和测试任何东西都没有用处。