У меня есть случай, когда я хотел бы генерировать XML до размещения его в API, содержащие разрывы строк (\ п), но не возврат каретки (без \ г).XDocument добавляет возврат каретки при формировании окончательного XML строки
В C#, хотя, кажется, что XDocument автоматически добавляет возврат каретки в ее в строку метода:
var inputXmlString = "<root>Some text without carriage return\nthis is the new line</root>";
// inputXmlString: <root>Some text without carriage return\nthis is the new line</root>
var doc = XDocument.Parse(inputXmlString);
var xmlString = doc.Root.ToString();
// xmlString: <root>Some text without carriage return\n\rthis is the new line</root>
В doc.Root.ToString(), наборы \ N \ г добавляются между элементами для отступы, которые не имеют значения для интерпретации получателя xml-сообщения в целом. Однако метод ToString() также добавляет \ r внутри фактического текстового поля, где мне нужно сохранить автономные разрывы строк (\ n без \ r после него).
Я знаю, что могу сделать окончательную строку заменой, удалив все возвраты каретки из окончательной строки до фактического HTTP-сообщения, которое должно быть выполнено, но это просто кажется неправильным.
Проблема такая же при построении xml-документа с использованием объектов XElement вместо Document.Parse. Проблема также сохраняется, даже если я использую элемент CData для обертывания текста.
Может ли кто-нибудь объяснить мне, если я что-то не так или если есть какой-то чистый способ добиться того, что я пытаюсь сделать?
Спасибо! Это сделал трюк. –