Символ Юникода в xml - PullRequest
       30

Символ Юникода в xml

0 голосов
/ 26 февраля 2019

Я столкнулся с ошибкой при запуске xquery для файла XML.На самом деле в XML есть некоторые элементы, которые содержат символы Юникода вместе с данными.

      "+30 2222032000",
      "+30 6973222259\u001f"

Я пытался использовать функции замены и удаления, но я не уверен, что все символы Юникода могут появиться в моем исходном файле.Есть ли общий метод, где я могу удалить все эти символы

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Каждый символ в документе XML является символом Unicode, если бы были символы, отличные от Unicode, то у вас действительно были бы проблемы.

Ваша настоящая проблема заключается в том, что документ использует кодировку символов Unicode, "\u001f ", который парсеры XML не распознают.Это совершенно законный XML-контент, просто он будет рассматриваться как последовательность из 6 символов, начинающаяся с обратной косой черты, а не как представление управляющего символа x1F (который, как это бывает, не является символом, разрешенным XML 1.0).

Одним из способов работы с этими символами будет трактовка "+30 6973222259 \ u001f" как строки JSON и использование функции XQuery 3.1 json-to-xml() для преобразования ее в XML (для этого требуется наличиецитаты).Однако это создаст вам проблемы, если есть escape-последовательности, которые преобразуются в символы, которые XML не разрешает, например \u0000.Функция json-to-xml() имеет различные варианты действий в таких ситуациях.

...