Dom解析XML文件

来源:互联网 发布:qq群举报软件 编辑:程序博客网 时间:2024/05/22 13:34

创建article.xml 如下

<?xml version="1.0" encoding="UTF-8"?><articles><article category = "xml"><title>XML 概述</title><author>janet</author><email>janetvsfei@yahoo.com.cn</email><date>20080801</date></article><article category = "java"><title>Java 基本语法</title><author>janet</author><email>janetvsfei@yahoo.com.cn</email><date>20080801</date></article></articles>

Dom  解析xml   Java  代码如下

package com.helloweenvsfei.xml;import java.io.File;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 DomDemo {public static void main(String[] args) {//创建解析的XML文档对象,其保存在F盘的根目录下的article.xml文件File xmlFile = new File("F:\\article.xml");//声明一个DocumentBuilder对象。抽象类,不能直接构建,可以通过Document Factory来构建DocumentBuilder builder = null ;//声明一个DocumentBuilderFactory对象.通过单例模式创建DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();try{builder = builderFactory.newDocumentBuilder();//取得默认的DocumentBuilder。Document document = builder.parse(xmlFile);//解析文件Element root = document.getDocumentElement();//获得根元素System.out.println("根元素:"+root.getNodeName());NodeList childNodes = root.getChildNodes();//获得根元素下的子节点for(int i = 0 ; i < childNodes.getLength() ; i++){//遍历这些子节点Node node = childNodes.item(i);//对每个子节点进行判断if("article".equals(node.getNodeName())){//如果节点的名称为“article”,输出article元素属性categorySystem.out.println("\r\n找到一篇文章.所属分类:"+node.getAttributes().getNamedItem("category").getNodeValue()+".");NodeList nodeDetail = node.getChildNodes();//获得<article>下的节点for(int j = 0; j < nodeDetail.getLength() ; j++){//遍历<article>下的节点Node detail = nodeDetail.item(j);//获得<article>元素每一个节点if("title".equals(detail.getNodeName()))//输出titleSystem.out.println("标题:"+detail.getTextContent());else if("author".equals(detail.getNodeName()))//输出authorSystem.out.println("作者:"+detail.getTextContent());else if("email".equals(detail.getNodeName()))//输出emailSystem.out.println("电子邮件:"+detail.getTextContent());else if("date".equals(detail.getNodeName()))System.out.println("发表日期:"+detail.getTextContent());}}}}catch(Exception e){e.printStackTrace();}}}


0 0
原创粉丝点击