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

java 解析xml字符串

作者:/神經病/   发布日期:2025-11-08   浏览:54

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;

public class ParseXMLString {
    public static void main(String[] args) {
        String xmlString = "<?xml version=\"1.0\"?><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和DocumentBuilder对象
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();

            // 解析XML字符串并创建Document对象
            Document document = builder.parse(inputStream);

            // 获取根元素
            Element root = document.getDocumentElement();
            System.out.println("Root element: " + root.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 != null ? node.getNodeValue() : "";
    }
}

解释说明:

  1. 导入必要的包:我们需要导入处理XML解析的相关类,如org.w3c.dom.*javax.xml.parsers.*等。
  2. 定义XML字符串:在main方法中定义了一个简单的XML字符串xmlString
  3. 将字符串转换为输入流:使用ByteArrayInputStream将XML字符串转换为输入流,以便解析器可以读取它。
  4. 创建解析器:使用DocumentBuilderFactoryDocumentBuilder来创建一个解析器实例。
  5. 解析XML字符串:调用builder.parse(inputStream)方法解析XML字符串,并返回一个Document对象。
  6. 获取根元素和子节点:通过document.getDocumentElement()获取根元素,并使用getElementsByTagName方法获取特定标签的节点列表。
  7. 遍历并打印节点内容:遍历节点列表,获取每个子元素的值并打印出来。
  8. 辅助方法:定义了一个辅助方法getElementValue,用于获取指定标签的文本内容。

这段代码展示了如何解析一个XML字符串并提取其中的内容。

上一篇:java 反射获取属性值

下一篇:java function接口

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

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

Laravel 中文站