Java dom解析XML

来源:互联网 发布:linux root登陆 编辑:程序博客网 时间:2024/06/03 17:53

java自带的API提供了解析XML的方案,利用dom树形结构来代表整个XML结构。解析步骤如下:
1、获得解析器的工厂类DocumentBuilderFactory,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。

DocumentBuilderFactory df=DocumentBuilderFactory.newInstance();

2、获得解析器DocumentBuilder, 使其从 XML 文档获取 DOM 文档实例,也就是说应用程序员可以从 XML 获取一个 Document。当然,解析器可以从各种输入源解析 XML,这些输入源有 InputStreams、Files、URL 和 SAX InputSources。

DocumentBuilder db=df.newDocumentBuilder();

3、获得Document,它就代表整个 HTML 或 XML 文档。从概念上讲,它是文档树的根,并提供对文档数据的基本访问。获取它的实例的方法有多种:

Document document=db.parse(new File(filepath));

或者其他方式:

Document document=db.parse(InputStream is) //输入流获取Document document=db.parse(String uri) //uri或者url获取Document document=db.newDocument() //创建新的dom树

4、获得根节点

Element root=document.getDocumentElement();

5、获得某个节点下的所有子节点,这里是根节点元素下的所有子节点

NodeList dl=root.getChildNodes();

Node对象是DOM中最基本的对象,代表了文档树中的抽象节点。但在实际使用中很少会直接使用Node对象,而是使用Node对象的子对象Element,Attr,Text等。
6、遍历整个节点集合,通过名称获取属性值

for(int i=0;i<dl.getLength();i++){            Node node= dl.item(i);            if(node.getNodeType()==Node.ELEMENT_NODE){                //节点的类型为有元素的节点,而不是空节点                Element el=(Element)node;                //获得配置xml文件中action节点name属性的值                String actionname= el.getAttribute("name");                if(actionname.equals(requestname)){                    return el.getAttribute("class");                }            }        }
1 0
原创粉丝点击