所以我有一个巨大的 XML 文件(维基百科转储 xml)。
我的学校项目要求说我应该能够对这个 xml 文件进行非常快速的搜索(所以不,不要将它导入 sql 数据库)
所以我当然想创建一个索引器,它将显示在一个单独的文件(可能是 xml)中,如下所示:[要搜索的内容]:[包含内容的 xml 节点开头的字节偏移量]
我的问题是如何获取元素的位置,如果搜索需要,我如何跳转到 xml 中的该位置?
该项目使用 C#。先感谢您。
稍后编辑:我正在尝试使用 XmlReader,但我愿意接受任何其他建议。
目前,这就是我为非索引搜索读取 XML 的方式
XmlReader reader = XmlReader.Create(FileName);
while (reader.Read())
{
switch (reader.Name)
{
case "page":
Boolean found = false;
String title = "";
String element = "<details>";
readMore(reader, "title");
title = reader.Value;
if (title.Contains(word))
{
found = true;
}
readMore(reader, "text");
String content = reader.Value;
if (content.Contains(word) & !found)
{
found = true;
}
if (found)
{
element += "<summary>" + title + " (click)</summary>";
element += content;
element += "</details>";
result.Add(element);
}
break;
}
}
reader.Close();
if (result.Count == 0)
{
result.Add("No results were found");
}
return result;
…
static void readMore(XmlReader reader, String name)
{
while (reader.Name != name)
{
reader.Read();
}
reader.Read();
}