如何使用JDOM解析以下XML

时间:2011-08-29 15:08:52

标签: java xml jdom

我有一个XML文档如下:

<?xml version="1.0" encoding="UTF-8"?>

<decision>
  <question id="0">
    <questionText>What type is your OS?</questionText>
    <answer id="0">
      <answerText>windows</answerText>
    </answer>
    <answer id="1">
      <answerText>linux</answerText>
    </answer>
    <answer id="2">
      <answerText>mac</answerText>
    </answer>
  </question>
  <question id="1">
    <questionText>What are you looking for?</questionText>
    <answer id="0">
      <answerText>table</answerText>
      <question id="0">
        <questionText>Which color table you want?</questionText>
        <answer id="0">
          <answerText>green</answerText>
        </answer>
        <answer id="1">
          <answerText>black</answerText>
        </answer>
        <answer id="2">
          <answerText>pink</answerText>
        </answer>
      </question>
    </answer>
    <answer id="1">
      <answerText>chair</answerText>
    </answer>
    <answer id="2">
      <answerText>bed</answerText>
    </answer>
    <answer id="3">
      <answerText>cloth</answerText>
    </answer>
  </question>

现在我想用Java中的jdom解析上面的XML。它是一种递归和重要的注意事项是问题不能是问题的直接孩子,同样适用于答案

3 个答案:

答案 0 :(得分:2)

Article

根据之前的相关问题,我想重复并强调其他人的建议(如JB Nizet对this question评论):

学习Java,学习XML,选择项目所需的工具和API,并学会使用它们。如果您遇到麻烦,这里的每个人都很乐意帮助您调试你的代码。

我知道这可能看起来很苛刻,但它已达到你的程序由StackOverflow用户而不是你自己构建的程度。

话虽如此,本答案顶部的链接引出了使用JDOM遍历XML的教程。

答案 1 :(得分:1)

使用Element.getChildren(String)获取所有问题标记并遍历该列表 - 调用getChildren(String)以获取所有答案,或getChild(String)如果只有一个子元素。

答案 2 :(得分:0)

首先,您需要使用XSD来验证XML。