У меня есть строка XML как таковая:
<?xml version='1.0'?><response><error code='1'> Success</error></response>
Там нет линий между одним элементом и другим, и поэтому очень трудно читать. Я хочу функцию, которая форматирует вышеуказанную строку:
<?xml version='1.0'?>
<response>
<error code='1'> Success</error>
</response>
Не прибегая к ручному написанию функции форматирования, есть ли библиотека .Net или фрагмент кода, которые я могу использовать не по месту?
c#
xml
formatting
Гравитон
источник
источник
XmlDocument
что будет дисквалифицировать ответ с наибольшим количеством голосов на этот вопрос.Ответы:
Используйте
XmlTextWriter
...источник
Вам придется как-то анализировать контент ... Я считаю, что с помощью LINQ это самый простой способ сделать это. Опять же, все зависит от вашего точного сценария. Вот рабочий пример использования LINQ для форматирования входной строки XML.
[использование высказываний опущено для краткости]
источник
doc.Declaration.ToString() + doc.ToString()
или используяdoc.Save
вместоdoc.ToString
. Смотрите эту ссылку для более подробной информации.Этот, от Кристоферджонсона, намного лучше:
Меньше строк кода
источник
<?xml version="1.0" encoding="UTF-8" ?>
строки вверху), и он работал нормально.Простое решение, которое работает для меня:
источник
Проверьте следующую ссылку:
Как красиво печатать XML(К сожалению, теперь ссылка возвращает 404 :()Метод в ссылке принимает строку XML в качестве аргумента и возвращает правильно сформированную (с отступом) строку XML.
Я просто скопировал пример кода по ссылке, чтобы сделать этот ответ более полным и удобным.
источник
<?xml...?>
. Этот ответ получает то, что я изначально имел в виду. Единственным минусом было бы то, что я бы предпочел вкладки, а не пробелы, используемые изначально. Я установилIndentation = 1
иIndentChar = '\t'
получил именно то, что хотел.(this String XML)
работах замечательно.Я попытался:
он работает нормально, как и ожидалось.
источник
.NET 2.0, игнорирующее разрешение имен и с надлежащим удалением ресурсов, отступом, сохранением пробелов и пользовательской кодировкой :
Использование:
источник
если вы загрузите XMLDoc, я почти уверен, что функция .ToString () имеет для этого перегрузку.
Но это для отладки? Причина, по которой он отправляется подобным образом, заключается в том, что он занимает меньше места (т.е. удаляет ненужные пробелы из XML).
источник
Настраиваемый вывод Pretty XML с объявлением UTF-8 XML
Следующее определение класса дает простой метод для преобразования входной строки XML в форматированный выходной XML с объявлением xml как UTF-8. Он поддерживает все параметры конфигурации, которые предлагает класс XmlWriterSettings .
Возможности для дальнейшего улучшения: -
GetPrettyXml(XmlDocument doc, XmlWriterSettings settings)
быть создан , который позволяет вызывающей стороне настроить вывод.GetPrettyXml(String rawXml)
, который поддерживает синтаксический анализ необработанного текста вместо того, чтобы клиент использовал XmlDocument. В моем случае мне нужно было манипулировать XML с помощью XmlDocument, поэтому я не добавил это.Использование:
источник