Как добавить CDATA в XML-файл? - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть существующий XML-файл, содержащий уведомления, которые я хочу отобразить на моем сайте.Ниже приведен фрагмент кода:

<contents>
  <item>
    <![CDATA[
        <a style="font-weight: bold;" href="http://engadget.com">Engadget</a>
    ]]>
  </item>
  <item>
    <![CDATA[
        <a style="font-weight: bold;" href="http://cnn.com">CNN</a>
    ]]>
  </item>
</contents>

Я пытаюсь открыть этот документ и добавить в него новые «элементы», но не могу:

        foreach (string s in notifications)
        {
            XmlElement newElement = doc.CreateElement("item");
            newElement.InnerXml = "&lt;![CDATA[ " + s + " ]]>";
            doc.DocumentElement.SelectNodes("/contents")[0].AppendChild(newElement);
        }

уведомления - это список, которыйЯ использую для хранения ссылок.Я получаю сообщение об ошибке:

']]>' не допускается в символьных данных.

Из-за того, как яЯ показываю это.Спасибо за внимание, ребята.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2012

Попробуйте использовать

newElement.AppendChild(doc.CreateCDataSection(s));

вместо

newElement.InnerXml = "&lt;![CDATA[ " + s + " ]]>";
1 голос
/ 28 февраля 2012

Попробуйте так:

newElement.InnerXml = "&lt;![CDATA[ " + s + " ]]&gt;";
...