0

xsl を使用して xml を処理し、別の xml を出力する際に​​問題があります。

私の入力には、次のような 16 進数のエンティティがあり& ます。saxon を使用してこの xml を処理する場合、入力のようにこのエンティティを保持する必要があります。

私はすでに文字マップまたはエンコードの変更を試みましたが、常にこのエンティティを&文字 & に変換します。

誰でもこれを解決する方法を知っていますか?

xml のサンプルは次のとおりです。

<data><name>Pilot &#38; Co-pilot Seat</name></data>

ここにxslがあります:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:fo="http://www.w3.org/1999/XSL/Format"
                              xmlns:xs="http://www.w3.org/2001/XMLSchema"
                              xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:template match="//name">
        <xsl:copy>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
4

1 に答える 1

0

私たちは解決策を見つけました、

xsl:character-map の使用

ただし、次のように文字列パラメーターの hex の前にエンティティ & を追加する必要があります。

<xsl:character-map name="isolat1">
    <xsl:output-character character="&#x0002F;" string="&amp;#x0002F;"/>
</xsl:character-map>

変換は期待どおりに機能します。

于 2013-09-20T19:02:31.960 に答える