繁体   English   中英

LINQ to XML - 从文件加载XML片段

[英]LINQ to XML - Load XML fragments from file

我有源XML文件,它带有多个根元素,我无能为力。 将这些片段加载到具有单个根节点的XDocument中的最佳方法是什么?我可以创建该根节点以获得有效的XML文档?

样品:

<product></product>
<product></product>
<product></product>

应该是这样的:

<products>
  <product></product>
  <product></product>
  <product></product>
</products>

谢谢!

以下是使用XmlReader ,这可能是最灵活,性能最快的方法:

XmlReaderSettings xrs = new XmlReaderSettings();
xrs.ConformanceLevel = ConformanceLevel.Fragment;

XDocument doc = new XDocument(new XElement("root"));
XElement root = doc.Descendants().First();

using (StreamReader fs = new StreamReader("XmlFile1.xml"))
using (XmlReader xr = XmlReader.Create(fs, xrs))
{
    while(xr.Read())
    {
        if (xr.NodeType == XmlNodeType.Element)
        {
            root.Add(XElement.Load(xr.ReadSubtree()));                
        }
    }
}

我会让你把它放到一个字符串字段中,但你基本上可以这样做:

myDoc=new XmlDocument();
myDoc.LoadXml("<products>"+myData+"</products>");

大概是这样的。

var newXML= new XElement("products",
               from x in Xdocuments.parse(originalFile).descendants("product")                       
               select new XElement("product",x.value)
            );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM