Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java解析xml字符串

作者:还依然存在   发布日期:2025-05-18   浏览:89

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();
    }
}

解释说明:

  1. 导入必要的包:使用org.w3c.dom.*javax.xml.parsers.*java.io.*等包来处理XML解析。
  2. 定义XML字符串:将要解析的XML内容存储在xmlString变量中。
  3. 将字符串转换为输入流:使用ByteArrayInputStream将字符串转换为输入流,以便解析器可以读取它。
  4. 创建解析器:使用DocumentBuilderFactoryDocumentBuilder创建一个DOM解析器。
  5. 解析XML字符串:通过builder.parse(inputStream)方法解析XML字符串并生成Document对象。
  6. 获取根元素:使用document.getDocumentElement().getNodeName()获取根元素名称。
  7. 遍历子节点:使用getElementsByTagName("note")获取所有<note>标签,并遍历它们。
  8. 获取并打印子元素的值:通过辅助方法getElementValue获取每个子元素的文本内容并打印出来。

希望这段代码和解释对你有帮助!

上一篇:java当前时间戳

下一篇:java解析json数组对象

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站