HTML кодировать на XSLT - PullRequest
       21

HTML кодировать на XSLT

4 голосов
/ 29 марта 2010

Я хотел бы преобразовать некоторое значение из атрибута XML в действительный HTML с сущностями. Так, например, строка "olá" из XML будет преобразована из XSLT в "olá"

Я не могу найти функцию xsl для этого. Есть идеи?

Ответы [ 2 ]

4 голосов
/ 29 марта 2010

Вы можете указать us-ascii кодировку в элементе xsl:stylesheet. Следующий XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes" method="html" encoding="us-ascii"/>

    <xsl:variable name="data" select="'olá'" />

    <xsl:template match="/">
        <xsl:text>olá - </xsl:text>
        <xsl:value-of select="$data" />
    </xsl:template>
</xsl:stylesheet>

дает:

ol&#225; - ol&#225;

Метод xml в xsl:stylesheet дает тот же результат со стандартным заголовком XML.

0 голосов
/ 30 марта 2010

Я уверен, что вы найдете этот шаблон полезным: Загрузите этот xslt и проверьте тот, который называется "url-encode-num" http://advanced -internal-onebox.googlecode.com / файлы / obox_stylesheet.xslt

Преобразует любой специальный символ ... Ну, любой из перечисленных здесь с их числовыми кодировками:

<xsl:variable name="latbis">¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"&lt;&gt;=</xsl:variable>
<xsl:variable name="digit1">111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222220000</xsl:variable>
<xsl:variable name="digit2">666666666777777777788888888889999999999000000000011111111112222222222333333333344444444445555552777</xsl:variable>
<xsl:variable name="digit3">123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123452465</xsl:variable>

Но его легко обновить.

Дайте мне знать, если это то, что вы искали.

Pablo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...