在XElement中解析CDATA

时间:2012-08-21 23:50:41

标签: c# xml xml-parsing xmlreader xelement

我正在尝试使用CDATA元素解析XML ...如果CDATA中的内容是xml编码的话,下面的代码就会爆炸...有什么办法可以解析所有xml之前解析..

---解析代码

if (formText.FirstNode.NodeType == XmlNodeType.CDATA) { return formText.Value; }
else { throw new applicatinException("ERROR")}

如果formText有

,则此代码有效
  "<Text><![CDATA[Sample Text<b>BoldText </b>]]></m:FormText>"

但如果formText有(编码值)

,则会爆炸
  "<Text>&lt;[CDATA[Sample Text &lt;b&gt;BoldText&lt;/b&gt; ]]&gt;</m:FormText>"

1 个答案:

答案 0 :(得分:1)

"<Text>&lt;[CDATA[Sample Text &lt;b&gt;BoldText&lt;/b&gt; ]]&gt;</m:FormText>"

这不是CDATA细分,它是一个文本细分。您必须将其作为基本文本处理,并自行处理提取CDATA信息。通过对CDATA信息进行编码,您已使其不再符合该格式。