2

我想将 XML 文档存储在sessionStorage. 当我这样做时,它似乎可以保存为XMLDocument. 当我尝试访问它(在页面刷新时)时,对象会返回,[object Object]而不是[object XMLDocument].

如何将数据sessionStorage作为一个XMLDocument(或将其转换为一个?)

4

2 回答 2

4

您可能希望在将 XMLDocument 保存到存储之前对其进行序列化:

var xml = new XMLSerializer().serializeToString(originalDom);
sessionStorage.setItem("myDocument", xml);

然后在从存储中加载数据后反序列化:

var xml = sessionStorage.getItem("myDocument");
var restoredDom = new DOMParser().parseFromString(xml, "text/xml");
于 2012-02-15T13:10:03.890 回答
2

localStorage并且sessionStorage只能拉弦。看一下接口定义

interface Storage {
  readonly attribute unsigned long length;
  [IndexGetter] DOMString key(in unsigned long index);
  [NameGetter] DOMString getItem(in DOMString key);
  [NameSetter] void setItem(in DOMString key, in DOMString data);
  [NameDeleter] void removeItem(in DOMString key);
  void clear();
};

除非您对它们进行序列化,否则您无法存储对象。因此,在您的情况下,您必须将其序列化为 XML

如果您以文本形式接收 XML 文档,则直接存储它。您可以jQuery.parseXML()在检索后使用它来解析它。

于 2012-02-15T13:02:53.567 回答