我試圖解析我的xml,它有一個CData標記作爲其節點的值。我的XML結構如下。從C#中解析XML中的CData
<node1>
<node2>
<![CDATA[ <[email protected]@@BREAK TYPE="TABLE" @@@--> <P><CENTER>... html goes here.. ]]>
</node2>
</node1>
我的代碼如下。當我解析時,我得到了CData標籤的響應,而不是CData標籤中的值。你能幫我解決我的問題嗎?
XDocument xmlDoc = XDocument.Parse(responseString);
XElement node1Element = xmlDoc.Descendants("node1").FirstOrDefault();
string cdataValue = node1Element.Element("node2").Value;
Actual Output: <![CDATA[ <[email protected]@@BREAK TYPE="TABLE" @@@--> <P><CENTER>... html goes here.. ]]>
Expected Output: <[email protected]@@BREAK TYPE="TABLE" @@@--> <P><CENTER>... html goes here..
我不確定System.XML.Linq.XDocument是否導致問題。所以我嘗試了XMLDocument版本如下。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseString);
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode(@"/node1/node2");
XmlNode childNode = node.ChildNodes[0];
if (childNode is XmlCDataSection)
{}
而我的if循環返回false。所以看起來像我的XML有什麼問題,它實際上不是一個有效的CData?請幫我解決這個問題。 請讓我知道你是否需要更多的細節。
是否有理由解答此問題?我試圖確保我提供所有必要的信息。 – csharpnewbie