2015-05-23 4 views
2

Я хотел бы преобразовать некоторые XSLT-файлы с XSLT, чтобы получить новые XSLT-файлы, которые на самом деле работают отлично. Только одна функция обеспечения задач: Если я копирую/или даже если я пытаюсь построить эту функцию вручнуюСохранение ссылок на объекты при преобразовании XSLT с XSLT

<xsl:function name="mr:get_xmlname"> 
    <xsl:param name="name"/> 

    <xsl:value-of 
     select="replace($name,'[^A-Z|_|a-z|&#xC0;-&#xD6;|&#xD8;-&#xF6;|&#xF8;-&#x2FF;|&#x370;-&#x37D;|&#x37F;-&#x1FFF;|&#x200C;-&#x200D;|&#x2070;-&#x218F;|&#x2C00;-&#x2FEF;|&#x3001;-&#xD7FF;|&#xF900;-&#xFDCF;|&#xFDF0;-&#xFFFD;|&#x10000;-&#xEFFFF;|\-|\.|0-9|&#xB7;|&#x0300;-&#x036F;|&#x203F;-&#x2040;]','_')" 
    /> 
</xsl:function> 

Я всегда в конечном итоге получить

<xsl:function name="mr:get_xmlname"> 
    <xsl:param name="name"/> 
    <xsl:value-of 
     select="replace($name,'[^A-Z|_|a-z|À-Ö|Ø-ö|ø-˿|Ͱ-ͽ|Ϳ-῿|‌-‍|⁰-↏|Ⰰ-⿯|、-퟿|豈-﷏|ﷰ-�|-|\-|\.|0-9|·|̀-ͯ|‿-⁀]','_')" 
    /> 
</xsl:function> 

Но на самом деле я хочу, чтобы он оставался, как это было до. Я уже пробовал некоторые вещи, используя disable-output-escaping, но, похоже, это не влияет, как на атрибут и текстовый узел.

Если у вас есть идеи, как я могу построить утверждение «вручную», это также будет рабочим решением для меня.

спасибо заранее

Martre

+0

Я не думаю, что есть способ сохранить ссылки на символы в XML-документе ввода. Если вы хотите, чтобы эти символы были сериализованы как ссылки на символы в результате преобразования XSLT, вам нужно было бы определить карту символов. –

ответ

5

Try <xsl:output encoding="us-ascii"/>, которые заставят все символы не-ASCII для сериализации, используя шестигранник или десятичные символьные ссылки, начали ли они жизнь, что путь или нет.

+0

Большое спасибо за эту быструю помощь, «Windows-1252» был результатом кодирования, который, наконец, решил проблему, так как в некоторых комментариях были некоторые символы не-ascii – martre