XML解析中的dom4j以及properties文件读取
2019-05-26 23:38
134 查看
properties文件读取
第一种:
properties文件的解析方式有java.util.properties这个类来完成
根据存放位置
1、根目录下 Xxx.class.getResourceAsStream("/config.properties"); 2、与读取配置文件的类在同一包 Xxx.class.getResourceAsStream("config2.properties"); 3、WEB-INF(或其子目录下) ServletContext application = this.getServletContext(); InputStream is = application.getResourceAsStream("/WEB-INF/config3.properties"); 为什么放在WEB-INF的文件必须要全局上下文才能取到呢? 原因:WEB-INF是一个安全目录,也就是不能被外界访问的一个目录,只能通过内部配置web.xml通过servlet来访问
当我的文件在我的根目录下(Source Folder)
public static void main(String[] args) throws IOException { //将当前同包下的db.properties资源文件转换成输入流 // 斜杆/ 代表根目录 InputStream in = PropertiesDemo.class.getResourceAsStream("/db.properties"); Properties p=new Properties(); p.load(in); System.out.println(p.getProperty("uname")); System.out.println(p.getProperty("upass")); }
第二种方式:
如果不是同包的情况下,而是放在根目录下,我们就只要 在 db.properties 加个斜杠 " / " 就好了
public class proServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletContext context = req.getServletContext(); //声明一个全局上下文 InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");//获取到WEB_INF的文件 Properties p=new Properties(); p.load(in); System.out.println(p.getProperty("uname"));//打印到控制台 System.out.println(p.getProperty("upass")); } }
什么叫做XML解析?
1、XML解析——Java中XML的四种解析方式
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。
XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。
其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
2、比较总结XML中几种解析方式
DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J(由外到内解析)。
dom4j 解析xml文件
DOM 是这样规定的:
整个文档是一个文档节点
每个 XML 标签是一个元素节点
包含在 XML 元素中的文本是文本节点
每一个 XML 属性是一个属性节点
注释属于注释节点
案例:建立一个student.xml,获得小王
然后建立一个方法来获得我们需要的
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()); }
然后就可以得到小王
今天就更新到这里
喜欢的可以关注我
不定时更新
相关文章推荐
- dom4j解析(读取)xml文件
- Xml解析、properties文件读取
- Dom4j解析XML来读取数据库配置文件信息
- 浅析dom4j解析xml文件及其乱码问题以及与后台数据进行交互
- Dom4j解析xml文件
- Java乔晓松-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- JAVA高手解析XML配置文件的读取操作
- Java用jdom.jar解析读取XML文件信息
- Dom4J --- 使用dom4j解析XML时候忽略DTD文件
- dom4j 解析 xml 文件(二)
- XML配置文件的读取--DOM4J
- 当xml中存在命名空间,dom4j解析以及写入xml文档时的乱码问题
- Java项目中读取properties文件,以及六种获取路径的方法
- web.xml文件解析,以及tomcat启动常见错误总结一哈。
- dom4j解析xml 文件 详细 讲解 有 实例
- 使用common-configuration读取xml,properties文件
- dom4j解析以及生成xml字符串测试
- java 解析xml是使用dom4j空行以及中文乱码的处理
- 从数据库中读取数据,并写入xml文件中(dom4j)
- IDEA 中读取不了配置文件以及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext