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

このドキュメントを application/xhtml+xml ではなく text/html として提供する場合、innerHTML は (ほとんどの場合) 大文字と小文字を区別しない HTML パーサーを使用するため、必ずしも要素名を保持するとは限りません。ドキュメントを XHTML として提供するか (整形式の場合)、javascript から明示的に xml パーサーを呼び出して XSLT スクリプトを解析することができます。

于 2013-09-05T08:44:39.420 に答える