DOM解析XML
一,创建DOM解析器工厂对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
二,创建解析器对象 DocumentBuilder builder = factory.newDocumentBuilder();
三,指定解析谁(xml文件或数据) Document doc = builder.parse(conn.getInputStream()); 得到的是文档对象
四,解析 想要解析的元素节点 NodeList n = doc.getElementsByTagName("要解析的元素"); 得到的是节点数组
五,遍历 for (int i = 0; i < nl.getLength(); i++) {
Node book = n.item(i); 得到的是book节点
//获取book节点的所有属性集合
NamedNodeMap attrs = book.getAttributes();
System.out.println("第"+(i+1)+"本书共有"+attrs.getLength()+"个属性");
//遍历book的属性
for(int j = 0;j<attrs.getLength();j++){
//通过item方法获取book节点的属性
Node attr = attrs.item(j);
//获取属性名
System.out.print("属性名:"+attr.getNodeName());
//获取属性值
System.out.println("--属性值"+attr.getNodeValue());
NodeList chilNod = book.getChildNodes();
System.out.println("第"+(i+1)+"本书共有"+chilNod.getLength()+"个子节点");
for(int k = 0;k<chilNod.getLength();k++){
Node chil = chilNod.item(k);
//区分text 类型node
if(chilNod.item(k).getNodeType() == Node.ELEMENT_NODE){
System.out.print("子节点名:"+chil.getNodeName()+":");
System.out.println(" 子节点值:"+chilNod.item(k).getFirstChild().getNodeValue());
//System.out.println("子节点值:"+chilNod.item(k).getTextContent());
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!