使用DOM

时间:2017-10-22 02:27:45

标签: java xml dom jaxb

<message>
    <element1>
        <arrival point="string">
            <positionAndTime>
                <Time>
                    <estimated time="2017-10-14T10:43:00Z"/>
                </Time>
            </positionAndTime>
        </arrival>
    </element1>
    <element2>
        <depart point="string">
            <positionAndTime>
                <Time>
                    <estimated time="2017-10-14T10:43:00Z"/>
                </Time>
            </positionAndTime>
        </depart>
    </element2>
</message>

这是我的XML文档的简化版本。 我正在编写一个JavaEE应用程序,但在解析XML时很困惑。到目前为止,我已经能够迭代它并从到达点=字符串和离开点=字符串接收字符串,但我有问题了解如何获得&#34;估计的时间&#34;来自元素1和2的块。我可以简单地使用getElementsByTagName,但因为它们在elements1和2中的名称相同,我需要将它们分开....

1 个答案:

答案 0 :(得分:0)

简单!

为了区分你,你已经将它们带入了一个Pojo类,你可以用不同的方式命名它们。

class MessageParser{

private String arrivalEstimatedTime;
private String departureEstimatedTime;
 .. 
 //getters and setters
 public String getArrivalEstimatedTime() {
    return arrivalEstimatedTime;
}

public void setArrivalEstimatedTime(String arrivalEstimatedTime) {
    this.arrivalEstimatedTime = arrivalEstimatedTime;
}

public String getDepartureEstimatedTime() {
    return departureEstimatedTime;
}

public void setDepartureEstimatedTime(String departureEstimatedTime) {
    this.departureEstimatedTime = departureEstimatedTime;
}
}

当你遍历xml时,你知道你的位置(到达标签或出发标签)

因此当您在<arrival point="string">标记内时,将值设置为

MessagePojo message=new MessagePojo();

message.SetArrivalEstimatedTime(arrival_Time_From_XML); 

估计出发时间也是如此。

现在您有了数据(arrivalEstimatedTime,departureEstimatedTime),您可以根据需要发送值