XML 解析器在 java 中的名称和值对中获取结果

XML parser to get result in Name and Value pair in java

我需要解析动态生成的 XML 文件。所以想要解析名称和值对中的 xml 结果并将插入到一些哈希图中。那么哪种解析机制更容易解析名称,值对中的XML?

我的XML看起来像,

<Address>
    <Name>Rahul</Name>
    <ID>2345</ID>
    <City>Pune</City>
    <Street>Gandhi Nagar</Street>
</Address>

我需要得到解析结果,

Name:Rahul
ID:2345
City:Pune
Street:Gandhi Nagar

我会使用 JAXB

class Address {
    @XmlElement(name="Name")
    private String name;
    @XmlElement(name="ID")
    private String id;
    public String getName() {
        return name;
    }
    public String getID() {
        return id;
    }
}

public class Test { 

    public static void main(String[] args) throws Exception {
        Address addr = JAXB.unmarshal(new File("address.xml"), Address.class);
    }
}

如果您事先不知道字段,您可以使用 StAX 在 Map 中进行解析:

    Map<String, String> map = new HashMap<>();
    XMLStreamReader xr = XMLInputFactory.newInstance().createXMLStreamReader(new FileInputStream("1.xml"));
    while(xr.hasNext()) {
        int e = xr.next();
        if (e == XMLStreamReader.START_ELEMENT) {
            String name = xr.getLocalName();
            xr.next();
            String value = xr.getText();
            map.put(name, value);
        } 
    }