【问题标题】:get the record value from XML Store in EXT js从 EXT js 中的 XML Store 获取记录值
【发布时间】:2011-03-11 18:59:09
【问题描述】:

我是用于 GUI 开发的 ExtJS。我正在使用 XML Store 从服务器检索数据。

我的 XML 看起来像这样。

<meta>
 <entry>x</entry>
 <entry>Y</entry>
</meta>
<data>
  <value>100</value>
  <value>500</value>
 </data>

其中 X=100 和 Y=500

如何使用 XMLStore 从中检索数据和值?

【问题讨论】:

  • 你确定这是你想要的 XML 结构吗?元数据和数据之间的关联是不稳定的……多条数据记录看起来如何? (如果没有多个条目,则对数据存储的需求是有问题的)
  • 我实际上是从另一个工具获取 XML 数据。我无法更改 XML 格式。字段“条目”和字段“值”的数量也是固定的。它们的数量总是相等的。
  • 那么为什么需要在数据存储中使用它?
  • 你的意思是你想要一个有 2 个字段的商店:“entry”和“value”,你可以像你的例子那样有 2 对或超过 2 对?

标签: extjs xmlstore


【解决方案1】:

由于 XML 结构并不真正适合 XML Store/Reader 所期望的,我建议您自己将 XML 解析为更标准的格式,然后将数据加载到例如 JsonStore。

解析代码:(写在我的脑海里,所以可能需要一些调整......)

var data = [];
var q = Ext.DomQuery;
var entries = q.select('meta > entry', theXML);
var values = q.select('data > value', theXML);
for (var i = 0; i < entries.length; ++i) {
    var recordData = {
        entry: entries[i].firstChild.nodeValue,
        value: values[i].firstChild.nodeValue
    }
    data.push(recordData);
}

希望对你有用...

【讨论】:

  • 感谢您的回复。 “theXML”是指XML文件的位置吗?就我而言,它是通过 REST API 导出的。是否可以在此代码中使用 URI 而不是 XML 文件路径?
  • “theXML”是 XML DOM 文档(或文档根节点对象)。您可以通过对 REST API URL 进行 AJAX 调用并在成功回调中访问 response.responseXML 来获得一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 2012-01-08
相关资源
最近更新 更多