Я создал набор скриптов, часть которых преобразует XML-документы из одного словаря в подмножество документа в другом словаре.Кодирование специальных символов в выходе XSLT
По соображениям, которые непрозрачны для меня, но, по-видимому, не подлежат обсуждению, целевая платформа (на основе Java) требует, чтобы выходной документ имел «кодирование =« UTF-8 »в декларации XML, но некоторые специальные символы внутри текстовых узлов должны быть закодированы с их шестнадцатеричным значением unicode - например '' 'Необходимо заменить на «”
» и т. Д. Я не смог получить окончательный список символов, которые должны быть закодированы, но это не так просто, как «все не-ASCII».
В настоящее время у меня есть ужасный беспорядок VBScript, использующий ADODB для непосредственного контроля каждой строки выходного файла после обработки и замены символов там, где это необходимо. Это мучительно медленно, и неудивительно, что некоторые персонажи пропущены (и, следовательно, нацелены на целевую платформу).
Хотя я мог тратить время на «очистку» VBScript, долгосрочная цель - полностью избавиться от этого, и я уверен, что должен быть более быстрый и точный способ достижения этого, в идеале в XSLT сам этап.
Может ли кто-нибудь предложить какие-либо плодотворные пути расследования?
(изменить: Я не убежден, что символьные карты являются ответом - я уже смотрел на них раньше, и если я не ошибаюсь, так как мой ввод может содержать любой символ юникода, мне нужно будет иметь карту, содержащую все из них, кроме те, которые я не хочу кодироваться ...)
Спасибо за ваш ответ. Я не уверен в символьных картах - я смотрел на них (будет редактировать мой пост, чтобы упомянуть об этом) раньше, и если я не ошибаюсь, так как мой ввод может содержать * любой символ юникода, мне нужно будет карта, содержащая все из них * кроме * тех, которые я не хочу кодировать ... –
Верно, что карта символов должна отображать символы, которые вы хотите кодировать, но если у вас сейчас есть VBScript, выполняющий эту задачу, Посмотрите, почему вы не можете настроить карту символов. Или как выглядит ваш текущий алгоритм, чтобы решить, следует ли кодировать или не кодировать символ? –
На данный момент я проверяю каждый символ на регулярное выражение, соответствующее моему лучшему (хотя и немного информированному) вопросу о том, какие символы * не должны * быть закодированы, а затем закодировать, если нет совпадения. –