zoukankan      html  css  js  c++  java
  • XML文件解析之DOM方法

           解析一个XML文件在实际项目中经常要用到,常用的有两种方式:DOM和SAX方式。它们的之间有很大的区别:DOM是把XML文件以一棵树的形式装载到内存里,然后再对它进行遍历,进而获得XML文件中存储的信息。而SAX解析方式是一种流机制的解析方式,它是读一行XML文件解析一行。

    例如,XML文件如下:

    <?xml version="1.0" encoding="utf-8"?>
    <Students>
        <student id="1">
            <name>杨振宇</name>    
            <sno>2008011123</sno>
            <sex></sex>
            <phone>18618405551</phone>
        </student>
        <student id="2">
            <name>张瑞</name>    
            <sno>2008011122</sno>
            <sex></sex>
            <phone>15120058124</phone>
        </student>
        <student id="3">
            <name>陈明</name>    
            <sno>2008011121</sno>
            <sex></sex>
            <phone>15801281851</phone>
        </student>
        <student id="4">
            <name>苏玉杰</name>    
            <sno>2008011120</sno>
            <sex></sex>
            <phone>18618405551</phone>
        </student>
        <student id="5">
            <name>高阳</name>    
            <sno>2008011145</sno>
            <sex></sex>
            <phone>18618405590</phone>
        </student>
    </Students>
     
    可以用一下的方式进行解析:
     
    public static void parse(File file) throws Exception {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.parse(file);
            Element root = doc.getDocumentElement();
            NodeList childList = root.getChildNodes();
            for (int i = 0; i < childList.getLength(); i++) {
                Node child = childList.item(i);
                if (child instanceof Element) {
                    Element element = (Element) child;
                    NodeList childInfo = element.getChildNodes();
                    for (int j = 0; j < childInfo.getLength(); j++) {
                        Node node = childInfo.item(j);
                        if (node instanceof Element) {
                            Element e = (Element) node;
                            Log.v("tag", "" + e.getTagName());
                            Text textNode = (Text) e.getFirstChild();
                            String text = textNode.getData().trim();
                            if (e.getTagName().equals("name"))
                                Log.v("tag", "" + text);
                            else if (e.getTagName().equals("sno"))
                                Log.v("tag", "" + text);
                            else if (e.getTagName().equals("sex"))
                                Log.v("tag", "" + text);
                            else if (e.getTagName().equals("phone"))
                                Log.v("tag", "" + text);
                        }
                    }
     
                }
            }
        }
     
    这样就可以把XML文件的有关信息给获取出来。
  • 相关阅读:
    phpcms无法读取index.html的解决步骤
    PHPwind高级伪静态规则及方法
    WordPress 添加Meta Box的方法步骤
    WordPress实现登录或退出后直接跳转到首页的方法
    怎么在php里面利用str_replace防注入
    php strrpos()与strripos()函数不同之处在哪里呢
    smarty中增加类似foreach的功能自动加载数据方法
    php连接Access数据库错误及解决方法
    如何利用php array_multisort函数 对数据库排序
    php之XML转数组函数的方法
  • 原文地址:https://www.cnblogs.com/yangzhenyu/p/2214342.html
Copyright © 2011-2022 走看看