Android:从XML读取特定节点而不解析整个文档

时间:2011-02-09 16:32:42

标签: android xml

我在这里感觉有点愚蠢。我正在按章节>存储始终按顶级组织的数据集。场景>对话。对话总是有几个属性,有时还有其他数据,这些数据也总是存储在有组织的层次结构中(条件集或选择集,每个都有自己的属性可供读取)。想象一下,选择你自己的冒险书,并将其所有规则存储在XML文档中。这似乎是存储它的最佳方式,我欢迎这种矛盾。

我将始终从第1章,场景1,对话1开始。每个对话,无论是通过属性还是条件,都会将我引导到一个新节点,例如,第3章,场景2,对话8.我将永远不必解析整个文档寻找章节,场景或对话标签。但是,我确实希望解析给定的Dialogue节点,以查看其包含的条件或选项集。

我无法为我的生活找到如何在Android中指定相当于:

XMLResourceParser parser = getResources().getXml((R.xml.script).getChild[CHAPTER][SCENE][DIALOGUE]);

虽然我每次都可以解析整个文档并迭代以匹配我的索引并知道我在哪里,但这似乎是完全不必要的。有什么想法吗?无论我到哪里,人们都在寻找需要阅读整个文档的问题的解决方案,答案始终是如何使用解析器。

1 个答案:

答案 0 :(得分:0)

目前还不清楚你在寻找什么。如果要读取xml文件,并且只关心文件中的几个节点,则可以使用SAX或pull解析器仅侦听您关心的节点。本文xml in Android包含两者的示例。

如果您关心整个文档,但只是想要一种简单的方法来导航到树中的特定元素,几个选项。您可以将XML解析为dom文档(上面文章中的第三个选项),并使用getElementsByTagName之类的函数来遍历树。

或者,您可以考虑使用XPath。有关概述,请参阅此documentation