Ale*_*mov 24 .net c# linq linq-to-xml
我有一个旧XmlNode
的代码.但解决当前任务的最简单方法是使用XElement
LINQ-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内容,然后将其解析为XElement
using XElement.Parse
:
public static XElement ToXELement(this XmlElement source)
{
return XElement.Parse(source.InnerXml);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30228 次 |
最近记录: |