dom4j解析xml文件的路径问题

dom4j支持SAX文件流的解析方式,不会像dom一样把文件内容一次读入到内存当中。但在配置其解析对象文件的相对路径时,让我产生疑惑:
String xmlFile = "./config.xml";
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(xmlFile));
这里的这个read方法是被重载的,接口有File;InputStream;URL;甚至String
常用的File的接口,定义的file以项目根目录为参考的相对目录或者绝对路径
如Document doc = reader.read(new File("./config.xml"));
而InputStream是以当前包为参考的相对目录
String xmlFile = "//exporter.config.xml";
InputStream ins = XmlDocument.class.getResourceAsStream(xmlFile);
Document doc = reader.read(ins);

另附:遍历节点的方法:
String xmlPath = "//brokers/broker";
List list= doc.selectNodes(xmlPath);
返回的是以Node为单位的List对象
如果已知Node在该path下只有一个节点,可以调用
Node nd = doc.selectSingleNode(xmlPath);
来获得

以上完成了DOM4j SAX方式读取xml文档

你可能感兴趣的:(xml)