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);
}
}
我需要解析动态生成的 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);
}
}