下面是详细的攻略:
概述
在处理XML数据时,需要用到一些解析工具来解析XML。JAVA中,一般使用DOM或SAX来解析XML。本文将介绍JAVA解析XML字符串的简单方法,使用的是DOM方式。
解析XML字符串
在JAVA中,处理XML字符串的主要步骤如下:
- 创建XML解析器;
- 加载XML字符串;
- 解析XML字符串;
- 获取需要的数据。
先看一下如何创建XML解析器:
// 创建XML解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
接着,加载XML字符串:
// 加载XML字符串
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><person><name>Tom</name><age>20</age></person>";
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
Document document = builder.parse(is);
在加载XML字符串时,需要将字符串转换为InputStream。
然后,解析XML字符串:
// 解析XML字符串
Element root = document.getDocumentElement();
NodeList nodeList = root.getChildNodes();
解析XML字符串后,就可以获取XML中的数据了。
最后,我们来看一个完整的代码案例:
try {
// 创建XML解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 加载XML字符串
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><person><name>Tom</name><age>20</age></person>";
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
Document document = builder.parse(is);
// 解析XML字符串
Element root = document.getDocumentElement();
NodeList nodeList = root.getChildNodes();
// 获取需要的数据
String name = "";
int age = 0;
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
if (element.getNodeName().equals("name")) {
name = element.getTextContent();
} else if (element.getNodeName().equals("age")) {
age = Integer.parseInt(element.getTextContent());
}
}
}
// 输出结果
System.out.println("Name: " + name + ", Age: " + age);
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
以上是一条示例说明,下面再来一条。
解析XML文件
如果要解析一个XML文件,只需要将加载XML字符串的代码改为从文件读取即可:
// 加载XML文件
File file = new File("data.xml");
Document document = builder.parse(file);
接着就可以按照上面的步骤进行解析和获取数据了。
下面是一个完整的代码案例:
try {
// 创建XML解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 加载XML文件
File file = new File("data.xml");
Document document = builder.parse(file);
// 解析XML文件
Element root = document.getDocumentElement();
NodeList nodeList = root.getChildNodes();
// 获取需要的数据
String name = "";
int age = 0;
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
if (element.getNodeName().equals("name")) {
name = element.getTextContent();
} else if (element.getNodeName().equals("age")) {
age = Integer.parseInt(element.getTextContent());
}
}
}
// 输出结果
System.out.println("Name: " + name + ", Age: " + age);
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
以上就是两条示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA解析XML字符串简单方法代码案例 - Python技术站