在 XML 中合法使用 CDATA

发布于 2024-08-25 18:24:23 字数 390 浏览 4 评论 0原文

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

请帮忙。 谢谢。

I have an XML file which XML parser choke on.
A part of it is :

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

The error I got is

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

What is the correct way of using CDATA?
I need CDATA because the data is read from Excel, and could contain illegal character such as ALT+ENTER whitespace.

Please help.
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゞ记忆︶ㄣ 2024-09-01 18:24:23

你使用什么解析器?您展示的示例绝对是有效的 XML。例如,在 .NET 中,我

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

使用以下代码成功解析了此 XML:

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);
    }
}

What parser are you using? The sample you showed is definitely a valid XML. For example in .NET I successfully parsed this XML :

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

using the following code:

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文