Как предотвратить преобразование & в & использование XmlTextWriter? - PullRequest
5 голосов
/ 01 февраля 2010

Символ '&' в тексте экранируется и преобразуется в & при создании XML-файла с использованием XmlTextWriter. но я не хочу, чтобы преобразование имело место, как предотвратить это?

Есть ли другой способ, кроме использования функции WriteRaw xmltextwriter?

Ответы [ 3 ]

9 голосов
/ 01 февраля 2010

Если вы поместите неэкранированный амперсанд в XML, он больше не будет действительным XML.

Вы можете либо избежать его (что делает ваша библиотека):

<tag>One &amp; another</tag>

Или оберните его в CDATA:

<tag><![CDATA[One & another]]></tag>

что может быть сделано:

xmlWriter.WriteCData("One & another");
0 голосов
/ 01 февраля 2010

Я не уверен, что это будет работать, но вы можете проверить свойства XmlWriterSettings, доступные через xmltextwriter.Settings, особенно свойство CheckCharacters.

С другой стороны, как упомянул Брайан Агнью, некодирование & to & может быть неправильным путем, поскольку это приведет к недействительности вашего XML (если только вы уже не закодировали его в &, и в этом случае вы можете просто захотеть декодировать его перед передачей его классу xmltextwriter.

0 голосов
/ 01 февраля 2010

Почему ты не хочешь, чтобы это произошло?Мне кажется, что библиотека обеспечивает правильное экранирование символов в соответствии с требованиями XML.

...