jjzjj

XPathDocument

全部标签

c# - 使用 dataSet.GetXml() 获取内存

如果数据集太大并且内存足够,我会得到错误“System.OutOfMemoryException”。文件“file1.xml”的大小约为36MB。解决这个问题的方法是什么?提前致谢。privateXPathDocumentGetXML(DataSetds){ds.WriteXml("file1.xml");ds.WriteXmlSchema("file1.xsd");XPathDocumentdoc=newXPathDocument(newStringReader(ds.GetXml()));returndoc;} 最佳答案 您可以

c# - WPF 的 C# 代码中的 XPath

如果您在XAML中绑定(bind)XML文档,则可以使用XPath,但如果您在代码隐藏中动态加载XML文档怎么办?后面的C#代码中是否有可用的XPath方法?(使用.NET3.5SP1) 最佳答案 将XML加载到代码后面的XPathDocument中,并使用XPathNavigator来保存查询。XPathNavigator.Select()的结果是一个返回所选节点的迭代器。示例(使用System.XML和System.Xml.XPath):XPathDocumentdoc=newXPathDocument(@"c:\filepat

C#,XML 查询问题

我有大量XML文件,它们都包含相同的XML文档,但具有不同的值。但是每个文件的结构都是一样的。在此文件中,我有一个日期时间字段。查询这些XML文件的最佳、最有效的方法是什么?所以我可以检索例如...日期时间字段=今天日期的所有文件?我正在使用C#和.netv2。我应该使用XML对象来实现此目的还是在文件搜索例程中使用文本?一些代码示例会很棒......或者只是一般理论,任何东西都会有帮助,谢谢... 最佳答案 这取决于这些文件的大小,以及数据的实际复杂程度。据我了解这个问题,对于这种XML数据,使用XPath查询并遍历所有文件可能是

c# - 如何读取具有命名空间的 XPathDocument

我有以下示例XML文件:SomeValue我加载它并尝试像这样阅读它:FileStreamstream=newFileStream(@".\TestXML.xml",FileMode.Open);XPathDocumentxPathDocument=newXPathDocument(stream);XPathNavigatornavigator=xPathDocument.CreateNavigator();XmlNamespaceManagerns=null;if(navigator.NameTable!=null){ns=newXmlNamespaceManager(navigat

c# - 大型 XML 文件,XmlDocument 不可行但需要能够搜索

我正在努力处理一个合理的逻辑循环,以便从一个太大而无法与支持.NET类的XPath一起使用的XML文件中剥离节点。我正在尝试用执行相同但使用XmTextReader的代码替换我拥有的单行代码(使用XPath查询字符串调用SelectNodes)。如之前使用的XPath查询(仅供引用)所示,我必须向下几个级别:ConfigurationRelease/Profiles/Profile[Name='MyProfileName']/Screens/Screen[Id='MyScreenId']/Settings/Setting[Name='MySettingName']我认为这会很烦人但很简

c# - 如何停止 "black box"操作?

我正在使用一个异步委托(delegate),它调用一个将xml文件加载到XPathDocument中的方法。如果xml太大而无法放入内存,它永远不会完成加载。如果xml文件成功加载到XPathDocument中,则下面的代码有效。我已经能够使用一个计时器事件来执行asyncXpath.EndInvoke(result)语句并用于结束CreateDocument方法,但它不会阻止XPathDocument加载。我的结论是,我唯一能做的就是发出Application.End语句来终止应用程序。有谁知道如何停止黑盒操作,例如加载XPathDocument。delegateboolAsyncX

c# - 将 XPathDocument 转换为字符串

我有一个XPathDocument并想将其导出为一个字符串,该字符串包含作为XML表示形式的文档。最简单的方法是什么? 最佳答案 您可以执行以下操作来获取XML文档的字符串表示形式:XPathDocumentxdoc=newXPathDocument(@"C:\samples\sampleDocument.xml");stringxml=xdoc.CreateNavigator().OuterXml;如果您希望您的字符串包含XML文档的完整表示,包括XML声明,您可以使用以下代码:XPathDocumentxdoc=newXPath

c# - XPathDocument 是否加载整个 xml 文档?

如果我这样做XPathDocumentdoc=newXPathDocument("filename.xml");是否将整个文档加载到内存中?我正在编写一个手机应用程序,该文档可能会存储大量数据,这些数据不需要同时加载。手机通常不会有太多的内存! 最佳答案 是的,整个XML文档都在内存中表示。一种解决方案是将大型XML文档拆分为许多较小的文档。或者,您也可以编写自己的XmlReader来忽略不需要的子树。您可以将此XmlReader作为参数传递给XpathDocument()构造函数——需要将其伪装成TextReader。

c# - XPathDocument 与 XmlDocument

我正在ASP.NET中开发一个博客引擎,其中一个存储库被实现为使用XML文件作为数据存储。XML存储库将主要用于本地使用和测试目的。现在,虽然这可能不是当今具有大量可用内存和处理能力的计算机的问题,但我还是想知道一些具体细节:XPathDocument是只读文档,而XmlDocument是读/写文档。因此,XPathDocument是否比XmlDocument更轻量级,因为它缺乏写入功能?我确信当您使用XmlDocument加载XML文档时,它会将整个文档加载到内存中,如果文档很大,这可能会成为一个问题。XPathDocument做同样的事情吗?如果是这样,我如何在不先将整个文档加载到