如何将XML文件保存到IndexedDB数据库中?

时间:2014-03-13 06:56:16

标签: xml xml-parsing indexeddb

在我的SQL服务器中,我在一个表中有64k +记录。我想将这些记录存储在我的客户端IndexedDB数据库中。

我想创建这些数据的XML文件,读取这些文件并将内容保存在我的IndexedDB中。我在阅读XML文件并将其保存到IndexedDB时陷入困境。

如何将XML文件保存到IndexedDB数据库?

2 个答案:

答案 0 :(得分:3)

Manikandan K,感谢您加入Stackoverflow讨论IDB

要记住的是,IndexedDB是一个“索引键值存储”,有点像面向文档的NoSQL数据库,如MongoDB,如果您熟悉的话。这意味着它与来自关系数据库(如列和表)的概念不匹配。

IDB存储的是“对象”,因此最好将SQL数据库转换为“类似对象”的格式。 JavaScript对象表示法,或“JSON”表示。

如果将数据库转换为XML,您仍然必须将其转换为IDB可以存储的对象。因此,Kristof将您的数据库直接转换为JSON是一个很好的建议。

为了帮助您绕过这个,请将表视为对象。该表将包含行和列,您可以将其映射到JavaScript对象属性和值。可以存储大多数“原始”JavaScript值,例如字符串,数字等。

例如,如果您的SQL表看起来像这样:

+------+--------+--------+
|      | ColA   | ColB   |
+------+--------+--------+
| Row1 | CellA1 | CellB1 |
| Row2 | CellA2 | CellB2 |
| Row3 | CellA3 | CellB3 |
+------+--------+--------+

您的JavaScript对象可能如下所示:

var myObjectToStore = {
    'Row1': { 'ColA': 'CellA1', 'ColB': 'CellB1' },
    'Row2': { 'ColA': 'CellA2', 'ColB': 'CellB2' },
    'Row3': { 'ColA': 'CellA3', 'ColB': 'CellB3' }
};

该对象的JSON表示非常相似:

{
  "Row1": {
    "ColA": "CellA1",
    "ColB": "CellB1"
  },
  "Row2": {
    "ColA": "CellA2",
    "ColB": "CellB2"
  },
  "Row3": {
    "ColA": "CellA3",
    "ColB": "CellB3"
  }
}

您可以使用像JSON.parse这样的浏览器本机方法将其转换为可以直接存储到IDB中的对象,而无需进行其他转换。

答案 1 :(得分:2)

我不会使用XML。为什么不编写一个以JSON格式提供数据的查询?这可以更容易地将其保存到IDB中。

在IDB中存储如此大量的记录并不是真的可取。想想你想要这样做的原因。也许还有其他方法可以实现相同的功能,而无需传输所有这些数据。