XML解析
2019-05-26 23:15
155 查看
标题
概念
Document Object Model(文档对象模型) 将HTML或XML在内存中解析成一棵树(将XML文本读入到内存,形成一棵树)。 对节点进行CRUD操作。 树有节点的概念(Node) 节点类型 文档节点 元素节点 属性节点 文本节点 注释节点
Java中配置文件的三种配置位置及读取方式
1.1 XML和*.properties(属性文件) 1.2 存放位置 1.2.1 src根目录下 Xxx.class.getResourceAsStream("/config.properties"); 1.2.2 与读取配置文件的类在同一包 Xxx.class.getResourceAsStream("config2.properties"); 1.2.3 WEB-INF(或其子目录下) ServletContext application = this.getServletContext(); InputStream is = application.getResourceAsStream("/WEB-INF/config3.properties");
XML解析
properties文件的解析方式有java.util.properties这个类来完成
xml文件:应该有一个工具类来完成
jdk/jdom
sax解析 由上往下解析
dom4j解析 由外到内解析
首先这是我的xml文件
我要通过dom4j+xpath解析xml文件,首先我们需要导入两个jar包dem4和jaxen(没有的可以去网上下载)
现在我们要获取到sid=s003的name值
public static void main(String[] args) throws DocumentException { InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(in); // System.out.println(doc.asXML());//输出整个xml文件的值 // 1、获取到所有的学生 List<Element> stules = doc.selectNodes("/students/student");//查student这一组节点 // 2、遍历 for (Element stu : stules) { if("s003".equals(stu.attributeValue("sid"))) { Node nameEle = stu.selectSingleNode("name");//查name单个节点 // System.out.println(nameEle.asXML());//打印<name>小王</name> System.out.println(nameEle.getText());//打印小王,这是第一种方法,通过遍历判断 } } // 做判断、如果sid=s003那么拿到小王 Node stuEleS003 = doc.selectSingleNode("/students/student[@sid='s003']"); System.out.println(stuEleS003.selectSingleNode("name").getText()); }
两种方法都放出来了,所以应该打印了两个小王
总结xml配置文件和properties配置文件的区别
properties配置文件,风格是一个属性对应于一个值(key = value)这样的键值匹对模式。这样给我的感觉就是每一行properties配置文件的键值,对应着一次赋值。事实上,如果你试验一下,在前后两行properties文件中给同一个属性赋不同值,得到的结果往往是属性是后面赋值的值。properties的局限性在于,只能处理赋值。
xml配置文件则是一个树的结构,因此,可以处理各种各样定义好的情况,例如add一个属性之类的,这在properties配置文件中就没有办法实现了。
相关文章推荐
- Android Pull解析Xml字符串
- IOS学习笔记27—使用GDataXML解析XML文档
- 使用dom4j 解析, 操作XML
- Android pull解析xml的实现方法
- Android 创建与解析XML(四)—— Pull方式
- (转)Android中解析XML:SAX、DOM、PULL
- javascript解析返回的xml各式的字符串
- Android中解析XML
- java中解析复杂xml(XStream简单使用)
- SAX解析xml文档(1)
- XML的解析和建模
- XML的兩種解析方式
- 网络:XML 解析
- java里面4种关于xml的解析方法
- Jquery Ajax解析XML数据(同步及异步调用)简单实例
- Dom4j遍历解析XML测试
- xml解析,JAXP (Java API for XML Processing)
- java dom xml解析和windows dom解析的区别
- 用SAX解析xml文件
- xml libxml2-xml 解析 http://sblig.iteye.com/blog/814323