使用java dom在xml文件中导航的正确方法是什么?

时间:2016-12-02 10:45:32

标签: java dom xml-parsing

我有一个xml文件,如下所示:

<mon:eventPointData>
<mon:kind mon:version="2010-11-11">bpmnx:EVENT_CAUGHT</mon:kind>
<mon:time mon:of="occurrence">2016-11-29T14:31:47.365-02:00</mon:time>
<mon:model mon:type="wle:processApplication">
  <mon:name>DEF Application</mon:name>
  <mon:documentation/>
  <wle:snapshot-name>Version 1</wle:snapshot-name>
</mon:model>
<mon:model mon:type="bpmn:startEvent">
  <mon:name>Start</mon:name>
  <mon:instance mon:id="2"/>
  <wle:snapshot-name>Version 1</wle:snapshot-name>
</mon:model>
<mon:model mon:type="bpmn:process" >
  <mon:name>DEF Test</mon:name>
  <mon:documentation/>
  <mon:instance mon:id="253">
    <mon:state>Active</mon:state>
  </mon:instance>
  <wle:snapshot-name>Version 1</wle:snapshot-name>
</mon:model>

使用java dom导航并获取标签和属性的值,但为了获得每个值,我认为我做了很多努力,所以我想我是在做错误的方式。

要获得mon:有价值的我使用

String kind = doc.getElementsByTagName("mon:kind").item(0).getTextContent();

获得&#34; name&#34;内部&#34;模型&#34; where属性&#34; mon:type&#34;等于&#34; wle:processApplication&#34;,我正在做以下事情:

for (int x = 0; x < e.getElementsByTagName("mon:model").getLength(); x++) {
        for (int i = 0; i < e.getElementsByTagName("mon:model").item(0).getAttributes().getLength(); i++) {
            if (e.getElementsByTagName("mon:model").item(0).getAttributes().item(i).getNodeValue()
                    .equals("bpmn:process")) {
                String name = ((Element)e.getElementsByTagName("mon:model").item(0)).getElementsByTagName("mon:name").item(0).getTextContent();

            }
        }
}

它有效,但我对此解决方案很有帮助。我是以正确的方式做到的吗?

由于

0 个答案:

没有答案