私はそのUTFに変え転換していたときに私のXMLでは、いくつかのヘキサ小数実体がある - 8進数のエンティティが変更されている
INPUTファイル:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>a text.</a>
<b>b – text.</b>
</root>
マイXSLTを:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output method="xml"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
CURRENT OUTPUT:
<root>
<a>a text.</a>
<b>b – text.</b>
</root>
所望の出力:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>a text.</a>
<b>b – text.</b>
</root>
エンコードをUTF-8として使用すると、なぜユニコード文字が問題になるのですか? XSLTプロセッサは、XMLパーサを使用して、入力をUnicode文字を含むテキストノードを持つツリーに構文解析します。元の入力ドキュメントに文字参照または文字が含まれているかどうかはわかりませんので、文字参照を保持できません。 XSLT 2以降では、特定の文字を異なる出力文字列表現にマップする文字マップを定義しています。その結果、結果ツリーのダッシュが文字参照としてシリアル化されるように定義できます。 –
https://www.w3.org/TR/xslt20/#character-maps –