Java XML 从上到下读取 XML 文件

标签 java xml jdom dom4j xom

我想使用 Java 从上到下读取 XML。但是,我不想使用递归函数,因为我希望能够跳转到不同的元素并从该位置开始读取。

我尝试使用 getParent()indexOf() 方法(下面的所有三个库都有这些方法)来执行此操作,但它变得非常困惑,主要是因为这些方法不区分属性和元素。

我确信一定有一种简单的方法可以做到这一点,但在尝试了 dom4jjdomxom 后,我仍然还没有找到解决办法。

[编辑]更多信息:

我的 friend 想要制作一款问答类型风格的基于控制台文本的游戏。我决定尝试让它读取 XML 文件,而不是将其硬编码到 java 中,因为 XML 具有树状样式,这会很方便。以下是我的 XML 文件的示例:

<disp>Text to be displayed</disp>
<disp>Text to be displayed afterward</disp>
<disp>What is your favorite color?</disp>
<question>
    <answer name="orange">
        <disp>Good choice.</disp>
        <!-- More questions and stuff -->
    </answer>
    <default>
        <disp>Wrong. The correct answer was orange.</disp>
    </default>
</question> 

我不知道像伪编程语言一样使用XML是否是禁忌。如果有人有其他建议,请随时提出。

最佳答案

您的设计基本上很好,并且是 Declarative Programming 的示例。您应该使用 XML 解析器将 XML 文件读入 DOM 或使用 SAX。因为我认为你会想要重新访问节点,所以我怀疑你将需要一个 DOM(FWIW 我使用 XOM,xom.nu)。基于 XML 的声明式编程的最佳示例之一是 XSLT,其中数据和命令都是 XML。

我经常使用这个模型。它的优点是数据结构可以是外部的并且可以编辑。

(请注意,您的 XML 需要根元素)

but it's gotten very messy, mainly because the methods don't distinguish between attributes and elements.

所有 DOM 或 SAX 工具都非常清楚地区分属性和元素,因此如果出现混淆,可能是在其他地方。

关于Java XML 从上到下读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630668/

相关文章:

java - 为什么XPATH无法访问该标签的值? ( java 语)

java - Java Realm : Support for HashMap and LatLng

java - 在局部变量上同步

java - Java 中的 New Relic @Trace 与 Segment

java - 仅使用 Java 从 apk 中提取 AndroidManifest.xml 文件

c# - XML 文档解析 C#

java - Spring:为什么我在使用注解时需要applicationContext.xml?

java - 我不应该在 Java 中执行 `String s = new String("一个新字符串");`,即使有自动字符串实习?

java - 如何使用 JDOM XSLTransformer 获得非 XML 输出?

NFS 安装上的 Java I/O