如何从 xml 解析器中读取数据

Posted

技术标签:

【中文标题】如何从 xml 解析器中读取数据【英文标题】:How to read data from xml parser 【发布时间】:2011-04-08 06:08:53 【问题描述】:

我正在使用 xml 解析器从 xml 文件中读取数据。在这个文件中它有这么多的记录。但我想读取数据(例如在这个文件中我有 200 条记录,但在表格视图中,它首先应该加载 10 条记录,然后我会保留一个按钮来点击和之后仅单击它应该加载它应该从 XML 文件解析的下 10 条记录)。有什么解决方案。帮助我解决这个问题。

【问题讨论】:

【参考方案1】:

我认为,您将不得不一口气读取 XML 文件,所以您可以做什么...... 您可以使用两个数组..一个用于保存 200 条记录,另一个用于保存 10 条然后 20 条,依此类推... 你的第二个数组将被你的 UITableView 使用...... 当您在第二个数组中添加更多项目时,只需调用UITableViewreloadData 函数

这是有用的 SO 帖子

What steps should be taken to convert my XML into Core Data objects?

xCode: convert XML file to CoreData model

【讨论】:

嗨伙计。我从 xml 文件中获得了超过 15000 条记录,因为这个原因我的应用程序变慢了。所以我想将 XML 文件转换为 .sqllite/core 数据你知道任何用于转换的资源吗XML 文件转换为核心数据/sql 文件【参考方案2】:

嗨,伙计,我也面临同样的 tableview 问题。许多解决方案可以满足您的要求 1.解析整个数据并放置在一个数组中并将数据动态加载到tableview中,优点是滚动会很快 2.编写查询,根据单元格值取数据。

在表格视图中,每个具有 id 的单元格都将其用作数组索引。

【讨论】:

嗨伙计。我从 xml 文件中获得了超过 15000 条记录,因为这个原因我的应用程序变慢了。所以我想将 XML 文件转换为 .sqllite/core 数据你知道任何用于转换的资源吗XML 文件转换为核心数据/sql 文件【参考方案3】:

我只是提出一个想法,但是使用 bool 和 counter 怎么样?你可以在 readElement 代码中创建一个巨大的 if 语句,比如

if (counter < 10) 
 do nothing;  
else 
 parse; 

实际上,这 10 个可以用第二个计数器代替。每次重新加载表时,都会创建全局变量 anotherCounter++,因此 if 语句将是 if (counter &lt; 10*anotherCounter)

当然,这种方法并没有真正跳过条目。但是,我的猜测是,如果他跳过所有解析并在不处理数据的情况下一次性运行解析器,它至少应该快一点。

【讨论】:

【参考方案4】:

如果您有大量数据,那么我建议您在请求 0 到 10 等 xml 数据时设置无数据,并在您需要更多数据时对其进行解析并显示在表格中,您可以再次请求表格 10 到 20并解析并再次显示在 tableview 中。

如果你有静态数据,我想它会起作用,即数据不经常变化

祝你好运

【讨论】:

【参考方案5】:

你还没有说你在什么样的环境中工作。这是一个独立的桌面应用程序,还是一个服务器端的 Web 应用程序,还是一个在浏览器中运行的交互式应用程序?每种情况下的解决方案都不同,因为它们都有不同的方式在用户交互之间保留数据(“应用程序状态”或“部分结果”)。

【讨论】:

嗨 michael Kay 感谢你。它是一个服务器 sidde Web 应用程序。但我将文件存储在本地文件夹中,然后我从那里得到 XML 列表。你能不能给我解决方案

以上是关于如何从 xml 解析器中读取数据的主要内容,如果未能解决你的问题,请参考以下文章

java从xml读取数据更快还是从数据库里读取数据更快?

使用 scala 从 HDFS 读取输入 xml 数据

如何读取xml文件导出为excel文件

如何在 C# 中从包含 XML 的字符串中读取数据?

无法解析和读取 xml 数据

JDK XML解析器中的XXE防御