有谁知道如何在C#中将XmlCDataSection强制转换为XDocument?
这是我到目前为止所做的,但它不起作用:
XmlCDataSection xcData = xcDataInput as XmlCDataSection;
XDocument xdoc = xcData.Cast<XmlNode>().Select(node => XDocument.Parse(node.OuterXml).Root);
这是错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' to 'System.Xml.Linq.XDocument'. An explicit conversion exists (are you missing a cast?)
答案 0 :(得分:2)
目前尚不清楚为什么要使用Cast
或Select
。我怀疑你只是想要:
XDocument xdoc = XDocument.Parse(xcData.InnerText);
请注意,我使用的是InnerText
而不是OuterXml
,因为CDATA节点的外部XML本身永远不会是有效的XML文档。如果这不是您想要的,请展示包含CDATA部分的文档的完整示例,以及您想要从中获取的文档。
答案 1 :(得分:0)
假设你可以执行演员表演,你必须告诉你哪个元素。选择方法返回一个列表。你可能想要第一个项目..
XDocument xdoc = xcData.Cast<XmlNode>().First(node =>XDocument.Parse(node.OuterXml).Root);