java - 在 Android 中动态解析 XML?

标签 java android xml parsing

有没有办法在不知道 XML 文件中存在的标签的情况下解析 XML 文件?

一个 XML 文件作为输入给出,必须对其进行解析。由于我们不知道其中存在的标签,我发现使用 DOM 解析器或 SAX 解析器很难进行解析。

有什么办法可以得到这个吗?

谢谢, 西瓦·库马尔

最佳答案

我不清楚问题是什么。 Java DOM 和 SAX 解析器不需要提前知道元素标签和属性。它将解析任何格式良好的 XML。我对 Android 上的 XML 解析不太熟悉,但是这里的教程似乎并没有表明解析器需要提前知道元素标签和属性:

http://www.ibm.com/developerworks/opensource/library/x-android/

例如,您可以使用 DOM 解析 XML 文档以获得 DOM 树。由于您不知道元素名称,因此您不能仅通过元素名称在 DOM 树中查询特定子元素或后代元素,而是可以通过像 Document.getDocumentElement() 这样的调用遍历树。和 Node.getChildNodes() 。由您的代码决定如何处理解析 XML 文档所产生的结构化 DOM 树,但 DOM 解析器本身并不关心特定的元素标签和属性是什么。

类似地,您可以将 XML 文档提供给 SAX 解析器,SAX 将很好地解析它。 SAX 将调用您的ContentHandler.startElement()带有元素名称和该元素中的属性映射的回调。您的代码需要确定如何处理 SAX 解析器在处理 XML 文档时找到的元素和属性,但 SAX 并不关心具体的元素标记和属性是什么。

所以问题归结为,您希望您的代码如何处理解析 XML 的结果?你想尝试识别它吗?你想把它打印得漂亮吗?您是否尝试将其转换为其他格式?

关于java - 在 Android 中动态解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4862378/

相关文章:

android - 为 android 搜索 "PaintCode"

java - 扫描不适用于 logback.xml

从 Servlet 执行批量更新时发生 Java EXCEPTION_ACCESS_VIOLATION

Android - 等待创建处理程序对象的正确方法

java - 如何将 JButton 添加到 GridLayout?

android - 如何从Android App内的logcat捕获错误?

java - "error: cvc-elt.1: Invalid type"在 Java 中验证 xml 时

xml - 从平面 xml 创建嵌套 xml 时遇到问题

java - 如何运行 servlet 过滤器?

java - 记录 Camel 路线