Я пытаюсь разобрать мой xml, который имеет тег CData как значение для одного из его узлов. Моя структура XML выглядит следующим образом.Разбор CData из XML в C#
<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? Помогите мне решить проблему. Pls, дайте мне знать, если вам нужно больше деталей.
Есть ли причина, по которой этот вопрос был приостановлен? Я попытался обеспечить всю необходимую информацию. – csharpnewbie