简体   繁体   English

在Java中使用Sax解析器解析xml数据

[英]Parse xml data using sax parser in java

I want to parse xml data which is as follows 我想解析如下的xml数据

xml data xml数据

<?xml version="1.0" encoding="utf-8"?>
<markers>
    <setMarker id="56c6b9c4ef263869678b4567" mlat="12.947014112057" mlng="77.62656211853"
        slot_id="morning" />
    <setMarker id="56c6b9c5ef263869678b4568" mlat="12.941744189945" mlng="77.628879547119"
        slot_id="morning" />
    <setMarker id="56c6ba01ef263805688b4567" mlat="12.929865544388" mlng="77.633428573608"
        slot_id="morning" />
    <setMarker id="56c6ba11ef2638c3668b4569" mlat="12.93630685197" mlng="77.613000869751"
        slot_id="morning" />
    <setMarker id="56c6ba1aef263814688b4567" mlat="12.944755587651" mlng="77.617979049683"
        slot_id="morning" />
    <setMarker id="56c6ba2bef26383e678b4567" mlat="12.928359760197" mlng="77.609052658081"
        slot_id="morning" />
    <setMarker id="56c6ba39ef263804678b4568" mlat="12.917317065284" mlng="77.60853767395"
        slot_id="morning" />
    <setMarker id="56c6ba3eef263849678b4567" mlat="12.908783739405" mlng="77.609825134277"
        slot_id="morning" />
    <setMarker id="56c6ba4eef263852678b4567" mlat="12.917735358079" mlng="77.586135864258"
        slot_id="morning" />
    <setMarker id="56c6ba58ef26383e678b4568" mlat="12.929196308091" mlng="77.583990097046"
        slot_id="morning" />
</marker>

but when I am parsing it is giving null value for each field. 但是当我解析它为每个字段提供空值。 Although parser works fine when this format of xml is given- 尽管在给出这种xml格式时解析器可以正常工作-

working format- 工作格式

<?xml version="1.0" encoding="UTF-8"?>
<markers>
    <setMarker>
        <mlat>"2163</mlat>
        <mlng>Kumar</mlng>
        <slot_id>Development</slot_id>

    </setMarker>
    <setMarker>
        <mlat>6752</mlat>
        <mlng>Siva</mlng>
        <slot_id>DB</slot_id>

    </setMarker>
    <setMarker>
        <mlat>6763</mlat>
        <mlng>Timmy</mlng>
        <slot_id>Testing</slot_id>

    </setMarker>
</markers>

How do I parse the xml data in that format using sax parser? 如何使用sax解析器解析该格式的xml数据?

The XML format which you say does not yield expected results has values as attributes. 您说不会产生预期结果的XML格式具有作为属性的值。 Try reading the values using the Attribute class method - getValue(). 尝试使用Attribute类方法-getValue()读取值。

Access element attributes like so. 像这样访问元素的属性。

@Override
public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException {
    if(localName.equalsIgnoreCase("setMarker")){
        String id = attributes.getValue("id");
        String mlat = attributes.getValue("mlat");
        String mlng = attributes.getValue("mlng");
        String slot_id = attributes.getValue("slot_id");
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM