2008-12-07 1 views
1

У меня есть строка, которая имеет угловые скобки в нем, как это:Как записать содержимое строки в XML без кодов ...?

<element1>my text here</element1> 

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

Все хорошо, за исключением, что в файле XML, что написано, выше показывает, как:

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

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

Спасибо!

-Adeena

ответ

0

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

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

4

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

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

Хм.

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

-Adeena

+0

Плохая идея по причинам, указанным me.yahoo.com/a/Tad.Kk – bortzmeyer 2008-12-08 12:01:36

2

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

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

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

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

2

Строка буквально выглядит так, когда я пишу ее на консоль или мой dataGridView или где-нибудь еще.

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

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

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

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

Смежные вопросы