У меня есть строка с угловыми скобками, например:
<element1>my text here</element1>
Строка буквально выглядит так, когда я записываю ее на консоль, в свой dataGridView или где-нибудь еще. Однако я пытаюсь написать это как часть XML-документа.
Все в порядке, за исключением того, что в записанном XML-файле приведенное выше отображается как:
<element1>my text here</element1>
Как мне сделать так, чтобы это было написано как мой буквальный текст, а не с кодами?
Спасибо!
-Адина





Это записывается как HTML-кодированный формат, поскольку ваше приложение должно думать, что это содержимое, а не фактические элементы XML, поэтому оно экранирует его, как если бы оно было содержимым.
Вы пробовали использовать класс XmlWriter?
Если вы хотите сохранить его как строку, не экранируя все элементы, используйте блок CDATA:
<xml><![CDATA[<element1>my text here</element1>]]></xml>
Хм.
Итак, я думаю, что решил, что вместо использования XMLSerializer (который, как я думал, был бы необычным способом решения задач), я просто собираюсь создать строки всех своих элементов и записать их как обычный текстовый файл. Кажется, это работает и достаточно просто. У меня была пара других уникальных / странных вещей, и этот способ сделать все намного проще. :)
-Адина
Мне непонятна ваша цель: как вы хотите, чтобы ваш окончательный 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 - это крайняя мера.
Плохая идея по причинам, объясненным me.yahoo.com/a/Tad.Kk