C#DataSet使用CDATA保存XML

时间:2018-08-20 17:24:34

标签: c# xml dataset

我有一个XML架构(xsd)和一个XML数据文件,我将其读入DataSet,绑定到UI控件,然后将更改保存回XML。

在XML内,我使用CDATA,因为XML数据包含HTML字符串。 但是,当我保存回XML时,CDATA部分将被删除, “ <”“>”已编码,我需要防止这种情况发生。

例如,我的XML文件中包含以下标记和数据:

<MyTag><![CDATA[My html string in <b>BOLD</b>]]></MyTag>

但是,当它从DataSet.WriteXML()中写出时,我最初得到的是:

<MyTag>My html string in &lt;b&gt;BOLD&lt;/b&gt;</MyTag>

请注意,1)缺少CDATA,2)已对“ <”和“>”进行编码...

因此,在保存之前,我更改了代码以更改DataSet值:

MyDataSet.Tables[0].Rows[0][0] = "<![CDATA[" + MyDataSet.Tables[0].Rows[0][0] + "]]>";

现在我得到这个输出:

<MyTag>&lt;![CDATA[My html string in &lt;b&gt;BOLD&lt;/b&gt;]]&gt;</MyTag>

几乎正确。我尝试使用反斜杠转义“ <”,但是反斜杠 输出为字符...

如何获取使用文字“ <”和““>”的输出?

0 个答案:

没有答案