Запись текста в XML с помощью XMLSerializer без экранирования - PullRequest
2 голосов
/ 17 мая 2011

пытаюсь записать текст в XML-файл с помощью XMLSerializer.Функция text (String) экранирует символы автоматически.

Можно ли не экранировать текст при добавлении его в xml-файл?

Если это невозможно, не могли бы вы порекомендоватьобходной путь без необходимости переписывать весь мой код создания XML?

Спасибо

1 Ответ

5 голосов
/ 23 ноября 2011

Возможно, вы продвинулись и тем временем нашли свое собственное решение, но вот возможное решение.Вместо того чтобы использовать сериализатор, я напрямую вызываю базовый StringWriter для вставки необработанного текста (в моем случае это правильно сформированный xml, поэтому я хочу избежать экранирования знаков <,>).Обратите внимание, что очистка сериализатора очень важна для получения правильного заказа.

XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
    serializer.setOutput(writer);
    serializer.startDocument("UTF-8", true);
    serializer.startTag(namespace, "destination");
    serializer.attribute(namespace, "id", String.valueOf(destinationId));
    serializer.flush();
    writer.write(DestinationContent);
    serializer.endTag(namespace, "destination");
    ...
} catch (Exception e) {
   throw new RuntimeException(e);
}
...