Java 在XMLPullParser 2.1.10中以更高效的方式搜索子节点

Java 在XMLPullParser 2.1.10中以更高效的方式搜索子节点,java,xml-parsing,xmlpullparser,Java,Xml Parsing,Xmlpullparser,我使用java中的XMLPullParser解析一个包含大量嵌套子节点的xml文件,如下所示 <pt> <a>85</a> <B>03</B> <pd> <g> <most>155</most> </g> <e>407</e> </pd>

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

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

85
03
155
407

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

如果您想用XMLPullParser更有效地进行解析,恐怕没有。例如,在JavaScript中,您可以通过指定元素的ID来“直接”访问元素,这似乎效率更高。但是在这种情况下,浏览器已经解析了整个DOM树,并标记了ID以备将来使用

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

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


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

感谢许多人员3000提供了详细而重要的解释。非常欢迎您;如果你相信这完全回答了你的问题,别忘了接受答案。