gpt4 book ai didi

C#,XML 查询问题

转载 作者:数据小太阳 更新时间:2023-10-29 02:28:20 25 4
gpt4 key购买 nike

我有大量 XML 文件,它们都包含相同的 XML 文档,但具有不同的值。但是每个文件的结构都是一样的。

在此文件中,我有一个日期时间字段。

查询这些 XML 文件的最佳、最有效的方法是什么?所以我可以检索例如...日期时间字段 = 今天日期的所有文件?

我正在使用 C# 和 .net v2。我应该使用 XML 对象来实现此目的还是在文件搜索例程中使用文本?

一些代码示例会很棒......或者只是一般理论,任何东西都会有帮助,谢谢...

最佳答案

这取决于这些文件的大小,以及数据的实际复杂程度。据我了解这个问题,对于这种 XML 数据,使用 XPath 查询并遍历所有文件可能是最好的方法,可能缓存文件以减少解析开销。

看看:XPathDocument、XmlDocument 类和 XPath 查询

http://support.microsoft.com/kb/317069

应该这样做(虽然没有测试):

XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
// if required, add your namespace prefixes here to nsmgr
XPathExpression expression = XPathExpression.Compile("//element[@date='20090101']", nsmgr); // your query as XPath
foreach (string fileName in Directory.GetFiles("PathToXmlFiles", "*.xml")) {
XPathDocument doc;
using (XmlTextReader reader = new XmlTextReader(fileName, nsmgr.NameTable)) {
doc = new XPathDocument(reader);
}
if (doc.CreateNavigator().SelectSingleNode(expression) != null) {
// matching document found
}
}

注意:虽然您也可以直接从 URI/路径加载 XPathDocument,但使用阅读器可确保使用与用于编译 XPath 查询的名称表相同的名称表。如果使用了不同的名称表,您将不会从查询中获得结果。

关于C#,XML 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com