Java解析XML

使用w3c dom采用递归实现xml文件的解析读取。


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class MAIN {

    public static void main(String[] args) throws  Exception {
        
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        factory.setIgnoringElementContentWhitespace(true);
        factory.setIgnoringComments(true);
        factory.setValidating(true);

        String nodeName = "";
        Element element = null;
        Node node = null;
        int childNodesLength = 0;
        
        Document xmlDoc = builder.parse("C:\\development\\workspace\\nm-server\\resource\\output\\lp\\problem_out.xml");
        Element root = xmlDoc.getDocumentElement();

        listNodes(root,"");
    }

    public static void listNodes(Node node, String space) {
        Element element = null;
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            element = (Element)node;
            System.out.println(space + element.getTagName());
        }
        
        NodeList list = node.getChildNodes();
        int childNodesLength = list.getLength();
        if (childNodesLength > 0) {
            for (int i = 0; i < childNodesLength; i++) {
                listNodes(list.item(i), space + "    ");
            }
        }
    }
}


posted @   翠微  阅读(536)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示