import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class XMLParser {
public static void main(String[] args) {
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>";
try {
// 将字符串转换为输入流
InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes("UTF-8"));
// 创建DocumentBuilderFactory对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析XML字符串并生成Document对象
Document document = builder.parse(inputStream);
document.getDocumentElement().normalize();
// 获取根元素
System.out.println("Root element: " + document.getDocumentElement().getNodeName());
// 获取所有子节点
NodeList nodeList = document.getElementsByTagName("note");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
// 获取并打印各个子元素的值
System.out.println("To: " + getElementValue("to", element));
System.out.println("From: " + getElementValue("from", element));
System.out.println("Heading: " + getElementValue("heading", element));
System.out.println("Body: " + getElementValue("body", element));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 辅助方法:获取指定标签的文本内容
private static String getElementValue(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = nodeList.item(0);
return node.getNodeValue();
}
}
org.w3c.dom.*
、javax.xml.parsers.*
和java.io.*
等包来处理XML解析。xmlString
变量中。ByteArrayInputStream
将字符串转换为输入流,以便解析器可以读取它。DocumentBuilderFactory
和DocumentBuilder
创建一个DOM解析器。builder.parse(inputStream)
方法解析XML字符串并生成Document
对象。document.getDocumentElement().getNodeName()
获取根元素名称。getElementsByTagName("note")
获取所有<note>
标签,并遍历它们。getElementValue
获取每个子元素的文本内容并打印出来。希望这段代码和解释对你有帮助!
上一篇:java当前时间戳
下一篇:java解析json数组对象
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站