C# 如何将XMLCDATA节强制转换为XDocument
有人知道如何将XMLCDATA节转换为C#中的XDocument吗 到目前为止,我已经做到了这一点,但它不起作用:C# 如何将XMLCDATA节强制转换为XDocument,c#,linq-to-xml,C#,Linq To Xml,有人知道如何将XMLCDATA节转换为C#中的XDocument吗 到目前为止,我已经做到了这一点,但它不起作用: XmlCDataSection xcData = xcDataInput as XmlCDataSection; XDocument xdoc = xcData.Cast<XmlNode>().Select(node => XDocument.Parse(node.OuterXml).Root); xmlcatasection xcData=xcDataInp
XmlCDataSection xcData = xcDataInput as XmlCDataSection;
XDocument xdoc = xcData.Cast<XmlNode>().Select(node => XDocument.Parse(node.OuterXml).Root);
xmlcatasection xcData=xcDataInput作为xmlcatasection;
XDocument xdoc=xcData.Cast().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?)
无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Xml.Linq.XDocument”。存在显式转换(是否缺少强制转换?)
不清楚为什么要使用Cast
或Select
。我猜你只是想:
XDocument xdoc = XDocument.Parse(xcData.InnerText);
请注意,我使用的是
InnerText
而不是OuterXml
,因为CDATA节点的外部XML本身永远不会是有效的XML文档。如果这不是您要查找的内容,请显示包含CDATA节的文档的完整示例,以及您想要从中获取的文档。假设您可以执行强制转换,您必须告诉哪些元素。选择方法返回一个列表。你可能想要第一件东西,所以
XDocument xdoc = xcData.Cast<XmlNode>().First(node =>XDocument.Parse(node.OuterXml).Root);
XDocument xdoc=xcData.Cast().First(node=>XDocument.Parse(node.OuterXml.Root));
不能将类强制转换为不相关的类型。将CDATA节的OuterXml
提供给XDocument
的Parse
方法将无法作为完整文档使用,因为不能包含单个CDATA节<如果CDATA包含XML文档的标记,则code>XDocument.Parse(xcData.InnerText)是有意义的。