Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用DOM解析XML文档_Java_Xml_Parsing_Dom - Fatal编程技术网

Java 用DOM解析XML文档

Java 用DOM解析XML文档,java,xml,parsing,dom,Java,Xml,Parsing,Dom,我有这样一个xml文件: element element1 element1 element 现在:element1可以有文本,或者/和两个元素element2 element3中的任何一个/都可以,因此xml文件可以是 <element> <element1> hi hello etc </element1> </element> 你好,等等 或 你好,等等 你好吗 好的 当它与上面的例子一样时,我成功地解析了它。我可以

我有这样一个xml文件:

element
 element1
  element1
element
现在:element1可以有文本,或者/和两个元素element2 element3中的任何一个/都可以,因此xml文件可以是

<element>
 <element1>
 hi hello etc
  </element1>
</element>

你好,等等


你好,等等
你好吗
好的
当它与上面的例子一样时,我成功地解析了它。我可以通过它们的标签访问节点,并从中获取内容。当xml为以下形式时,会出现问题:

<element> 
<element1>
 <element2>
 how are you
   </element2>
  </element1>
</element>

你好吗
我有一个循环,它遍历xml文档并检查标记element1、element2、element3,然后获取content。对于上面的例子,我得到一个接受,循环终止。因为当它到达元素1时,它没有得到内容,而是有另一个元素。 请帮我解决这个问题
谢谢

如果每行仅包含元素名或文本内容,我将使用堆栈进行解析 这样的背景。因此,定义堆栈S,如果XML文件如下所示:

<element>
  <element1>
    hi hello etc
    <element2>
        how are you
    </element2>
    <element3>
        fine
    </element3>
  </element1>
</element>

你好,等等
你好吗
好的
所以整个想法可能是这样的:

-->S[
]

-->S[
]

hi hello etc
-->S[
hi hello etc
]

-->S[
你好等
]

你好吗
-->S[
你好等
你好吗
]

获取
,然后弹出两次,然后获取
你好吗-->S[
你好,等等
]

-->S[
你好等
]

fine
-->S[
你好等
fine
]

获取
,然后弹出两次,然后获取
fine
-->S[
你好等
]

获取
,然后弹出两次,然后获取
hi hello etc
-->S[
]


这就是你的意思吗???

你也应该发布代码。
<element>
  <element1>
    hi hello etc
    <element2>
        how are you
    </element2>
    <element3>
        fine
    </element3>
  </element1>
</element>