Как записать содержимое строки в XML без кодов ...?

У меня есть строка с угловыми скобками, например:

<element1>my text here</element1>

Строка буквально выглядит так, когда я записываю ее на консоль, в свой dataGridView или где-нибудь еще. Однако я пытаюсь написать это как часть XML-документа.

Все в порядке, за исключением того, что в записанном XML-файле приведенное выше отображается как:

&lt;element1&gt;my text here&lt;/element1&gt;

Как мне сделать так, чтобы это было написано как мой буквальный текст, а не с кодами?

Спасибо!

-Адина

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
604
5

Ответы 5

Это записывается как HTML-кодированный формат, поскольку ваше приложение должно думать, что это содержимое, а не фактические элементы XML, поэтому оно экранирует его, как если бы оно было содержимым.

Вы пробовали использовать класс XmlWriter?

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

<xml><![CDATA[<element1>my text here</element1>]]></xml>

Хм.

Итак, я думаю, что решил, что вместо использования XMLSerializer (который, как я думал, был бы необычным способом решения задач), я просто собираюсь создать строки всех своих элементов и записать их как обычный текстовый файл. Кажется, это работает и достаточно просто. У меня была пара других уникальных / странных вещей, и этот способ сделать все намного проще. :)

-Адина

Плохая идея по причинам, объясненным me.yahoo.com/a/Tad.Kk

bortzmeyer 08.12.2008 15:01

Мне непонятна ваша цель: как вы хотите, чтобы ваш окончательный XML-файл выглядел?

Если вы выведете его как показано ниже, то синтаксический анализатор XML будет интерпретировать «<element1>» как часть структуры, а не как содержимое.

<container><element1>my text here</element1></container>

Что касается записи XML в виде строк, это плохая идея: экранирование существует по какой-то причине, и, если вы не знаете спецификацию XML во всех подробностях, вы почти гарантированно совершите ошибку при ее выполнении.

The string literally looks like this when I write it to console or my dataGridView or anywhere else.

Никогда не следует напрямую манипулировать строковым значением XML-документа.

Я не делаю много абсолютных заявлений о разработке программного обеспечения, но это почти всегда верно. Это определенно правда, если вы не слишком разбираетесь в XML. Я предполагаю, что 25% или более проблем, с которыми сталкиваются новички в XML, вызваны этим.

Строка будет отображаться правильно, если вы загрузите XML в XmlDocument, найдете элемент, который его содержит, и выпишите свойство InnerText элемента. Модель DOM правильно передает текст в XML и из него, кодируя его так, чтобы разметка в тексте не мешала разметке XML. Ты хочешь это.

Еще одна вещь, которую я заметил: по крайней мере, в 90% случаев предложение использовать CDATA технически правильно, но неверно во всех остальных отношениях. Использование CDATA - это крайняя мера.

Другие вопросы по теме