目前,这是我想要做的:
- 将 xml 文件从 url 保存到我的计算机
- 解析它并获取我想要的信息(这不是全部)
- 将解析的信息与昨天版本的 xml 进行比较
所以我可以做多种不同的事情,但我想尽可能以最节省内存的方式来做。我也不希望它永远解析和比较文件。
选项1:
- 直接从url解析xml并保存到数组中
- 遍历数组并创建一个新的 xml 文件,其中只包含我想要做这样的事情来创建新的 xml 文件的解析信息。
- 比较两个xml文件
- 根据xml之间的差异编写新的xml文件
选项 2:
- 使用任何这些建议的方法下载 xml 文件(这会保留 xml 结构吗?)
- 将xml解析为数组
- 比较两个xml文件
- 写一个新的xml
这是我一直在研究的两个选项,但我知道还有更多。不确定它们是否更有效,但我已经有几天没有用我的电脑直接访问互联网了,所以我无法真正对它们进行测试。当我能够测试它一段时间后,我注意到直接从网站解析信息需要一段时间。
xml 结构如下所示:
<Data>
<User>
<ID>1</ID>
<Name>Bob</Name>
<Age>18</Age>
<IsOnline>false</IsOnline>
<Sport>Basketball</Sport>
<GymPresence>
<LastSeen>April 12 2013</LastSeen>
<Picture>www.gym.com/picId=10000</Picture>
<Weights>
<Machine>Bench</Machine>
<Weight>175</Weight>
<Reps>8</Reps>
</Weights>
</GymPresence>
</User>
<User>
<ID>2</ID>
<Name>Joe</Name>
<Age>23</Age>
<IsOnline>false</IsOnline>
<Sport>Baseball</Sport>
<GymPresence>
<LastSeen>April 10 2013</LastSeen>
<Picture>www.gym.com/picId=10001</Picture>
<Weights>
<Machine>Bench</Machine>
<Weight>205</Weight>
<Reps>8</Reps>
</Weights>
</GymPresence>
</User>
...
... # 3 through 124
...
<User>
<ID>125</ID>
<Name>Amy</Name>
<Age>17</Age>
<IsOnline>false</IsOnline>
<Sport>Volleyball</Sport>
<GymPresence>
<LastSeen>April 13 2013</LastSeen>
<Picture>www.gym.com/picId=10124</Picture>
<Weights>
<Machine>Bench</Machine>
<Weight>105</Weight>
<Reps>5</Reps>
</Weights>
</GymPresence>
</User>
</Data>
总的来说,我想知道解析、比较和编写 xml 文件的最佳选择是什么。
当我能够在线测试它时,它需要一段时间来解析 xml 而不保存它。当 xml 文件位于我的计算机上时,它的速度要快得多。但是下载文件会保留 xml 格式吗?是否值得从 xml 中保留我不需要的信息,以防我以后需要它?还是我必须解析它并将其写出来(这似乎需要更长的时间)以保持格式?