我在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以更有效的方式搜索子节点。
答案 0 :(得分:0)
如果您正在寻找一种更有效的方法来使用XmlPullParser进行解析,我恐怕没有。例如,在JavaScript中,您可以通过指定其ID来“直接”访问元素,这似乎更有效。但在这种情况下,您的浏览器已经解析了整个DOM树,并标记了ID以供将来使用。
根据我的理解,XmlPullParser“动态”进行解析,这意味着当您使用“next()”方法到达目标节点时,它是第一次被读取。因此,没有其他方法可以直接访问它。另外,我相信XmlPullParser接口没有定义任何跳转到文档某个部分的方法。
但是,如果您确实需要提高性能,则可以在解析之前预先处理xml文件,方法是删除文件中某些不应该有用的部分。根据您的操作,预处理纯文本可能比XML解析快得多;但是你也很有可能会破坏你的文件。
根据我的经验,即使XML有很多优点,它的解析也可能非常慢。如果性能非常关键,如果可以的话,切换到另一种文件格式(例如二进制文件)可以快得多。