存储刮擦数据的最简单方法

时间:2012-10-28 07:31:44

标签: c# database screen-scraping

我正在创建一个应用程序,它将在语言中搜索函数的文档并返回结果。目前,该文档包含一个页面,该页面链接到专用于所选功能的页面。我准备了一种使用HTML Agility Pack检索数据的方法。我还有一个搜索关键字的算法。我只需要一种存储数据的方法。在这种情况下,易用性比效率更重要,因为应用程序只需要存储大约75条记录。

这是我提出的潜在解决方案列表:

  1. System.Data.SQLite
  2. CSV
  3. XML
  4. 我认为这些是大多数人立即建议的解决方案。到目前为止,我已经尝试过解决方案1,对于相对少量的记录来说,似乎需要做的工作量超过必要。

    对于这个项目,你会建议使用哪种存储方法?

2 个答案:

答案 0 :(得分:1)

如果数据集相对较小且速度不是问题,我会选择XML。如果你正确设计你的类并且它是可序列化的,你可以使用Xml序列化中的构建。

[Serializable]
public class MyDataStorage
{
    // some members

    public void Store( String filename )
    {
        XmlSerializer serializer = new XmlSerializer( typeof( MyDataStorage ) );
        using ( FileStream stream = File.OpenWrite( filename ) )
        {
            serializer.Serialize( stream, this );
        }
    }

    public static MyDataStorage Load(String filename )
    {
        XmlSerializer serializer = new XmlSerializer( typeof( MyDataStorage ) );
        object deserialized;
        using ( FileStream stream = File.OpenRead( filename ) )
        {
            deserialized = serializer.Deserialize( stream );
        }

        return (MyDataStorage) deserialized;
    }
}

答案 1 :(得分:0)

对于平面数据,csv。否则xml或json。