您可以使用 Linq 读取 CDATA。
XDocument xdoc = XDocument.Load("YourXml.xml");
xDoc.DescendantNodes().OfType<XCData>().Count();
通过这种方式获得价值非常容易。
这是 MSDN 上的一个很好的概述:http: //msdn.microsoft.com/en-us/library/bb308960.aspx
对于 .NET 2.0,您可能只需要通过 Regex 传递它:
string xml = @"<section>
<description>
<![CDATA[
This is a ""description""
that I have formatted
]]>
</description>
</section>";
XPathDocument xDoc = new XPathDocument(new StringReader(xml.Trim()));
XPathNavigator nav = xDoc.CreateNavigator();
XPathNavigator descriptionNode =
nav.SelectSingleNode("/section/description");
string desiredValue =
Regex.Replace(descriptionNode.Value
.Replace(Environment.NewLine, String.Empty)
.Trim(),
@"\s+", " ");
修剪您的节点值,用空替换换行符,并用一个空格替换 1+ 个空格。考虑到 CDATA 正在返回重要的空白,我认为没有其他方法可以做到这一点。