草庐IT

.net - 性能:XmlReader 或 LINQ to XML

我有一个150MB的XML文件,它在我的项目中用作数据库。目前我正在使用XmlReader从中读取内容。我想知道在这种情况下使用XmlReader还是LINQtoXML更好。请注意,我正在此XML中搜索项目并显示搜索结果,因此这可能需要很长时间或只是片刻。 最佳答案 如果您想要性能,请使用XMLReader。它不会读取整个文件并在内存中构建DOM树。相反,它从磁盘读取文件并返回它在途中找到的每个节点。通过快速谷歌搜索,我找到了XmlReader、LINQtoXML和XmlDocument.Load的性能比较。https://web.

C# 在使用 LINQ to XML 时检查元素是否存在

好吧,有点随意的问题,但最好的方法是只添加代码,你马上就能明白我的意思:XML:1Blah-face12Blah-face-223Blah-face-311C#:XDocumentlinquee=XDocument.Load(path);varsuperType=(fromcinlinquee.Descendants("customer")where(c.Element("SuperType").Value=="1")selectc).ToList();这会产生一个空错误——我是否需要在每个客户之前为每个客户添加一个空值的“SuperType”元素,或者是否有一种解决方法意味着我不必这

C# LINQ TO XML - 从 DTD header 中删除 "[]"个字符

我最近在VS2010中创建了一个小型C#windows窗体/LINQtoXML应用程序,它完全按照它应该做的,除了一件事:它在DOCTYPE标记的末尾添加了“[]”,这显然是导致遗留系统拒绝的文件。这是之前和之后:之前之后这些字符是在使用.Save函数将文件保存在程序中后添加的。该程序允许选择一个.xml文件,然后通过删除某些标签来“清理”它,然后保存它。进程开始时,文件的DOCTYPE中没有“[]”。保存后,他们会这样做。LINQtoXML添加这些吗?有什么方法可以防止程序添加这些字符吗? 最佳答案 显然,当XDocument解析

c# - 从 XDocument 中删除节点

这会从文档中删除所有元素:XDocumentdocument=XDocument.Load(inputFile);foreach(XElementelementindocument.Elements()){element.Remove();}document.Save(outputFile);这没有任何效果:XDocumentdocument=XDocument.Load(inputFile);foreach(XElementelementindocument.Elements()){//element.Remove();foreach(XElementchildinelement.E

c# - 使用 Linq 和 XDocument,我可以获取父标签下的所有子元素吗?

我有一个XML使用Linq和XDocument,我可以提取“摘要”信息,但如何提取“摘要”标签下的“帐户”信息?XDocumentXMLDoc=XDocument.Load("testdata.xml");XElementaccounts=(fromxml2inXMLDoc.Descendants("summary")selectxml2).FirstOrDefault();我如何指定类似“summary/account”的内容,以便它返回下的所有元素?请注意,我在下有,我只想要摘要标签下的元素。 最佳答案 您应该使用Element

c# - Linq to XML 将元素添加到特定子树

我的XML:我想添加新的Account元素来假设ID为2的客户。我知道如何添加我不知道如何指定客户的行(我在哪里写客户的ID?)我的LINQtoXML代码:XDocumentdocument=XDocument.Load("database.xml");document.Element("Bank").Element("Customer").Element("Accounts").Add(newXElement("Account",newXAttribute("id","variable")));document.Save("database.xml");感谢您的帮助。XML不是我的好

.net - Linq2XSD 死了吗?

自alpha0.2以来,有人对此有任何更新吗?? 最佳答案 MicrosofthasnowreleasedLINQtoXSDasOpenSource以便社区可能会关心它。 关于.net-Linq2XSD死了吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/601073/

.net - LINQ to XML - 它是如何工作的?

我的问题本质上是一个简单的问题,尽管我在这里寻找尽可能深入的答案:如何LINQtoXML在幕后工作?现在,我在为各种应用程序使用LINQtoXML方面有相当多的经验,所以它的界面对我来说并不陌生,但我对内部如何运作一无所知。现在,我确实对LINQ提供程序的工作原理有了一些了解(本质上是实现IQueryable和IQueryProvider并利用访问者模式)。但是,我还没有发现任何关于LINQtoXML的LINQ提供程序的信息——即使是乱用Reflector也没有让我得到任何东西,尽管也许我错过了显而易见的东西。最有趣的是,我无法在System.Xml.Linq程序集/命名空间中找到LI

xml - 如何使用 LINQ to XML 包含 CData?

我想在ASP.Net中使用以下代码记录到XML。但是,我想添加在第五元素中。当我如下所示制作时,它正在创建""&"bt;"而不是>字符和""&"lt;"而不是字符到XML。如何摆脱这个问题?代码:XElementxml=newXElement("photo",newXElement("thumbnail",TextBox1.Text),newXElement("filename",TextBox2.Text),newXElement("baslik1",TextBox3.Text),newXElement("baslik2",TextBox4.Text),newXElement("de

xml - 您如何在 Linq To Xml 中防范 Null Reference 异常?

我有一个xml文件,它为cms中的页面定义了额外的资源。使用LinqToXml查询此文件时,防止空引用异常的最佳方法是什么?varpage=(fromtabElementinextensionsDoc.Descendants("page")wheretabElement.Attribute("id").Value==tabId.ToString()selecttabElement).SingleOrDefault();如果页面元素没有名为“id”的属性,此代码可能会触发NullReference异常。我必须使用trycatchblock还是有办法处理这个问题?例如,如果页面元素没有名为