Кодирование специальных символов в выводе XSLT - PullRequest
1 голос
/ 17 февраля 2012

Я создал набор сценариев, часть которых преобразует документы XML из одного словаря в подмножество документа в другом словаре.

По непонятным для меня причинам, но, по-видимому, не подлежащим обсуждению, целевая платформа (на основе Java) требует, чтобы в выходном документе было указано «encoding =" UTF-8 »в объявлении XML, но некоторые специальные символы внутри текстовые узлы должны быть закодированы с их шестнадцатеричным значением Unicode - например, «» Должен быть заменен на «”» и так далее. Я не смог получить окончательный список символов, которые должны быть закодированы, но он не так прост, как «все не ASCII».

В настоящее время у меня ужасный беспорядок в VBScript, использующий ADODB для прямой проверки каждой строки выходного файла после обработки и замены символов в случае необходимости. Это мучительно медленно, и неудивительно, что некоторые персонажи пропускаются (и, следовательно, уничтожаются целевой платформой).

Хотя я мог бы тратить время на «усовершенствование» VBScript, долгосрочная цель - полностью избавиться от этого, и я уверен, что должен быть более быстрый и точный способ достижения этого, в идеале на этапе XSLT. сам.

Кто-нибудь может предложить какие-либо плодотворные пути расследования?

(редактировать: я не уверен, что карты символов - это ответ - я смотрел на них раньше, и, если не ошибаюсь, поскольку мой ввод может содержать любой символ Юникода, я потребуется карта, содержащая все их , за исключением , которые я не хочу кодировать ...)

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012
<xsl:output encoding="us-ascii"/>

Сообщает сериализатору, что он должен выдавать ASCII-совместимый вывод. Это должно заставить его создавать ссылки на символы для всех не-ASCII символов в текстовом содержимом и значениях атрибутов. (Если в других местах, таких как имена тегов или атрибутов, не указан ASCII, сериализация завершится неудачей.)

0 голосов
/ 17 февраля 2012

Что ж, в XSLT 2.0 вы отметили свой пост, используя карту персонажей, см. http://www.w3.org/TR/xslt20/#character-maps.

...