Легально использовать CDATA в XML - PullRequest
0 голосов
/ 18 марта 2010

У меня есть файл XML, который захлебывается анализатором XML. Часть этого:

<closedDeal><customer><![CDATA[ABC ]]></customer></closedDeal>

Я получил ошибку

The literal string ']]>' is not allowed in element content. Error processing resource

Как правильно использовать CDATA? Мне нужен CDATA, потому что данные читаются из Excel и могут содержать недопустимые символы, например пробел ALT + ENTER.

Пожалуйста, помогите. Благодарю.

1 Ответ

2 голосов
/ 18 марта 2010

Какой парсер вы используете? Пример, который вы показали, определенно является допустимым XML. Например, в .NET я успешно проанализировал этот XML:

<?xml version="1.0" encoding="utf-8" ?>
<closedDeal>
  <customer><![CDATA[ABC ]]></customer>
</closedDeal>

используя следующий код:

using System;
using System.Xml.Linq;
using System.Xml.XPath;

public class Program
{
    static void Main(string[] args)
    {
        var doc = XElement.Load("test.xml");
        doc.XPathSelectElement("//customer");
        Console.WriteLine(doc.Value);
    }
}
...