0

我想通过使用 xslt 从 Xml 创建 KML 代码问题是 xslt 将节点的所有字母更改为小写这是我的代码:

<?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="/">
        <xsl:for-each select="tasks/task">
        <kml >
            <Placemark>
                <name><xsl:value-of select="title"/></name>
                <description>
                    <xsl:value-of select="abilities"/>
                </description>
                <Point><coordinates><xsl:value-of select="geotag"/></coordinates></Point>
            </Placemark>
        </kml>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

问题是当我使用下一个javascript代码来获取xslt的输出时,我得到了小写的节点Placemark和Point!

var xsltTasksAsKml = xsltProcessor.transformToFragment(xml, document);
var div = document.createElement('div');
div.appendChild(xsltTasksAsKml);
alert(div.innerHTML);

我该如何处理这个问题?提前致谢。

4

2 回答 2

1

你需要改变

xsltProcessor.transformToFragment(xml, document);

进入

xsltProcessor.transformToDocument(xml);

这消除了对“拥有”文档的依赖。对我来说,这解决了一个非常相似的问题。

于 2015-08-19T11:52:31.430 回答
0

如果您将此文档作为 text/html 而不是 application/xhtml+xml 提供,则 innerHTML 将使用(大部分)不区分大小写的 HTML 解析器,因此不一定会保留元素名称。您可以将文档作为 XHTML(如果格式正确)提供,或者从 javascript 显式调用 xml 解析器来解析 XSLT 脚本。

于 2013-09-05T08:44:39.420 回答