首页 > 解决方案 > 在 C# 中忽略通过 `dataSet.ReadXml` 解析 `CDATA`

问题描述

我有一个这样的xml:

<dictionary>
    <string key="Test">
        <value><![CDATA[<b>Test Data</b>]]></value>
    </string>       
</dictionary>

我在数据集中加载这个 xml。加载后从值中dataSet.ReadXml删除。CDATA我需要CDATA作为数据集中的值。我需要这些数据:

--------------------------------------------
|  Key    |         Value                  |
--------------------------------------------
|  Test   | <![CDATA[<b>Test Data</b>]]>   |
--------------------------------------------

CDATA读取xml时如何忽略解析?

标签: c#xmldataset

解决方案


这样你就可以得到你想要的:

using (StringReader stream = new StringReader("<dictionary> <string key=\"Test\"> <value><![CDATA[<b>Test Data</b>]]></value> </string> </dictionary>"))
{
    XDocument doc = XDocument.Load(stream);
    XElement element = doc.Descendants("value").First();
    string value = element.LastNode.ToString();
    Console.WriteLine(value);
}

输出:

<![CDATA[<b>Test Data</b>]]>

推荐阅读