Ale*_*mov 24 .net c# linq linq-to-xml
我有一个旧XmlNode的代码.但解决当前任务的最简单方法是使用XElementLINQ-to-XML.唯一的问题是在.NET Framework中没有直接或明显的方法将a转换XmlNode为a XElement.
所以对于初学者,我想实现一个接收XmlNode实例并将其转换为XElement实例的方法.
我该如何实现这种转换?
EZI*_*EZI 18
var xElem = XElement.Load( xmlElement.CreateNavigator().ReadSubtree() );
Run Code Online (Sandbox Code Playgroud)
xmlElement.InnerXml在其他答案中使用有两个问题,
1-您将松开根元素(当然,它可以轻松处理)
XmlDocument doc = new XmlDocument();
doc.LoadXml("<root> <sub>aaa</sub> </root>");
var xElem1 = XElement.Load(doc.DocumentElement.CreateNavigator().ReadSubtree());
var xElem2 = XElement.Parse(doc.DocumentElement.InnerXml);
Run Code Online (Sandbox Code Playgroud)
xElem2将是<sub>aaa</sub>,没有(root)
2-如果xml包含文本节点,则会出现异常
XmlDocument doc = new XmlDocument();
doc.LoadXml("<root> text <sub>aaa</sub> </root>");
var xElem1 = XElement.Load(doc.DocumentElement.CreateNavigator().ReadSubtree());
var xElem2 = XElement.Parse(doc.DocumentElement.InnerXml); //<-- XmlException
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用InnerXml属性of XmlElement来获取元素的xml内容,然后将其解析为XElementusing XElement.Parse:
public static XElement ToXELement(this XmlElement source)
{
return XElement.Parse(source.InnerXml);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30228 次 |
| 最近记录: |