Java XML从上到下读取XML文件

时间:2013-05-19 01:37:59

标签: java xml jdom dom4j xom

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

我尝试使用getParent()indexOf()方法(下面所有三个库都有这些方法)来做到这一点,但它变得非常混乱,主要是因为这些方法不区分属性和元件。

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

[编辑]更多信息:

我的朋友希望以问题/答案类型的方式制作一个基于控制台文本的游戏。我没有将其硬编码到java中,而是决定尝试将其读取为XML文件,因为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。如果有人有其他建议,请随时给他们。

3 个答案:

答案 0 :(得分:1)

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

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

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

  

但它变得非常混乱,主要是因为方法没有   区分属性和元素。

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

答案 1 :(得分:0)

如果您要显示您想要对XML片段执行的操作会很好,但通常如果您想要读取任何类型的文件,请使用java.util.Scanner。

Scanner scan = new Scanner (new File("file.xml"));
while (scan.hasNext()) {
    String theData = scan.nextLine();
}
scan.close();

这应该返回所需的值,直到用完扫描行为止。 希望它有效并且快乐编码!

答案 2 :(得分:0)

因为您想要读取xml文件。我建议去SAX解析器。它是基于事件的解析器,非常快速有效地用于xml读取(自上而下方法)。

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/将解释有关sax解析器的用法。

由于