读取程序---------------------------------------------------------------------------------------------------
package com.yuyi.xml;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import org.w3c.dom.*;import javax.xml.parsers.*;public class XmlUtil { public Document getDocument(String path){
try{
File file = new File(path);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
System.out.println("factory: "+factory);
DocumentBuilder builder = factory.newDocumentBuilder(); 
System.out.println("builder: "+builder);
Document doc = builder.parse(file);
System.out.println("doc:"+ doc);
BufferedReader br = new BufferedReader(new FileReader(file));
String context;
while((context = br.readLine())!=null){
System.out.println(context);
}
System.out.println("doc: "+doc);
return doc;
}catch(Exception e){
e.printStackTrace();
return null;
}
} public static void main(String[] args) { XmlUtil xmlUtil = new XmlUtil();
String path = "./src/bean.xml";
Document doc = xmlUtil.getDocument(path);
System.out.println("doc: "+doc);
}
}XML文件---------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="gbk"?><users><user id="0"><name>zhangsan</name><password>lisi</password></user></users>运行结果---------------------------------------------------------------------------------------------------
factory: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl@1172e08
builder: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl@186db54
doc:[#document: null]
<?xml version="1.0" encoding="gbk"?><users><user id="0"><name>zhangsan</name><password>lisi</password></user></users>doc: [#document: null]

解决方案 »

  1.   

    package dom;import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Element;
    import java.io.File;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;/**
     * DOM解析XML文档示例
     */
    public class DOMParser {
        public DOMParser() {
        }
        public static void main(String[] args) throws Exception{
            DOMParser domparser = new DOMParser();
            domparser.parseXMLFile("src/file/student.xml");
        }
        /**
         * 解析文档
         * @param fileName
         */
        public void parseXMLFile(String fileName) throws Exception{
                File file = new File(fileName);
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                Document doc = builder.parse(file);
                doc.normalize();            //获得根元素StudentInfo
                Element elmtInfo = doc.getDocumentElement();            //得到所有student元素
                NodeList nlStudent = elmtInfo.getElementsByTagName("student");            System.out.println("XML文件开始解析--By DOM");
                System.out.println();            //循环输出每一个学生成绩
                for (int i = 0; i < nlStudent.getLength(); i++) {                //当前student元素
                    Element elmtStudent = (Element) nlStudent.item(i);                NodeList nlCurrent = elmtStudent.getElementsByTagName("name");
                    System.out.println("姓名:" +
                                       nlCurrent.item(0).getFirstChild().
                                       getNodeValue());
                    nlCurrent = elmtStudent.getElementsByTagName("sex");
                    System.out.println("性别:" +
                                       nlCurrent.item(0).getFirstChild().
                                       getNodeValue());                nlCurrent = elmtStudent.getElementsByTagName("lesson");                for (int j = 0; j < nlCurrent.getLength(); j++) {                    Element elmtLesson = (Element) nlCurrent.item(j);
                        NodeList nlLesson = elmtLesson.getElementsByTagName(
                                "lessonName");
                        System.out.print(nlLesson.item(0).getFirstChild().
                                         getNodeValue());
                        System.out.print(":");
                        nlLesson = elmtLesson.getElementsByTagName("lessonScore");
                        System.out.print(nlLesson.item(0).getFirstChild().
                                         getNodeValue());
                        System.out.println();
                    }
                    System.out.println("------------------------------------");
                }            System.out.println("XML文件解析结束--By DOM");
        }
    }
    student.xml<?xml version="1.0" encoding="GBK"?><StudentInfo>
        <student>
            <name>乔聪</name>
            <sex>男</sex>
            <lesson>
                <lessonName>Java初级</lessonName>
                <lessonScore>85</lessonScore>
            </lesson>
            <lesson>
                <lessonName>Oracle数据库</lessonName>
                <lessonScore>95</lessonScore>
            </lesson>
            <lesson>
                <lessonName>Java中级</lessonName>
                <lessonScore>80</lessonScore>
            </lesson>
            <lesson>
                <lessonName>Java高级</lessonName>
                <lessonScore>100</lessonScore>
            </lesson>
            <lesson>
                <lessonName>绣花课</lessonName>
                <lessonScore>7</lessonScore>
            </lesson>
            <lesson>
                <lessonName>跳绳课</lessonName>
                <lessonScore>3</lessonScore>
            </lesson>
        </student>
        <breakLine/>
        <student>
            <name>花木兰</name>
            <sex>女</sex>
            <lesson>
                <lessonName>射箭</lessonName>
                <lessonScore>100</lessonScore>
            </lesson>
            <lesson>
                <lessonName>柔道</lessonName>
                <lessonScore>95</lessonScore>
            </lesson>
            <lesson>
                <lessonName>国学</lessonName>
                <lessonScore>80</lessonScore>
            </lesson>
            <lesson>
                <lessonName>烹饪</lessonName>
                <lessonScore>60</lessonScore>
            </lesson>
            <lesson>
                <lessonName>游泳</lessonName>
                <lessonScore>70</lessonScore>
            </lesson>
        </student>
        <breakLine/>
    </StudentInfo>
      

  2.   

    路径没问题,问题是sysout就是[Element: null]并不是没找到,找到了节点组,需要往下细化查找。
    同样谢谢各位。散分。