0

我在 java 中使用 XMLPullParser 来解析一个包含大量嵌套子节点的 xml 文件,如下所示。

<pt>
   <a>85</a>
   <B>03</B>
     <pd>
         <g>
            <most>155</most>
         </g>
        <e>407</e>
     </pd>
</pt>

我对api不太熟悉。因此,在 XmlPullParser 实例上使用大量 next() 方法确实很难找到像"most"这样的子节点。有人可以帮助我使用 XMLPullParser 以更有效的方式搜索子节点。

4

1 回答 1

0

如果您正在寻找一种更有效的方法来使用 XmlPullParser 进行解析,恐怕没有。例如,在 JavaScript 中,您可以通过指定其 ID 来“直接”访问一个元素,这似乎更有效。但在这种情况下,您的浏览器已经解析了整个 DOM 树,并标记了 ID 以供将来使用。

据我了解,XmlPullParser 会“即时”进行解析,这意味着当您使用“next()”方法到达目标节点时,这是第一次被读取。因此,没有其他方法可以直接访问它。另外,我相信 XmlPullParser 接口没有定义任何方法来跳转到文档的某些部分。

但是,如果您确实需要提高性能,您可以在解析之前对 xml 文件进行预处理,例如删除文件中不应该使用的某些部分。根据您的工作,预处理纯文本可能比 XML 解析快很多;但是您也很有可能这样做会破坏您的文档。

根据我的经验,尽管 XML 有很多优点,但它的解析速度确实很慢。如果性能真的很重要并且可以的话,切换到另一种文件格式(例如二进制)会快很多。

于 2013-05-23T06:14:03.523 回答