【问题标题】:Legally use CDATA in XML在 XML 中合法使用 CDATA
【发布时间】:2010-03-18 08:24:55
【问题描述】:

我有一个 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 空格。

请帮忙。 谢谢。

【问题讨论】:

  • 你能贴出导致错误的代码吗?
  • 是的,错误出现在我没有在这里发布的其他地方:)

标签: xml cdata


【解决方案1】:

您使用的是什么解析器?您展示的示例绝对是一个有效的 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);
    }
}

【讨论】:

  • 错误.. 好的,谢谢。错误出现在我没有放在这里的较长代码中。有关闭 ]]> 但没有打开
猜你喜欢
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
相关资源
最近更新 更多