加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML详解

发布时间:2020-12-16 06:01:13 所属栏目:百科 来源:网络整理
导读:一:什么是XML XML是一种可扩展标记语言 (Extensible Markup Language,XML)。XML重在数据交换,用于不同平台或者应用程序 之间交换数据,存储数据。 二:XML的特点 1:XML是纯文本标记 XML文件是纯文本的形式,正是由于这种简单的格式,才让所有能处理纯文本

一:什么是XML

XML是一种可扩展标记语言 (Extensible Markup Language,XML)。XML重在数据交换,用于不同平台或者应用程序之间交换数据,存储数据。

二:XML的特点

1:XML是纯文本标记

XML文件是纯文本的形式,正是由于这种简单的格式,才让所有能处理纯文本的程序都能处理XML文件。这样对于数据交换和传输时至关重要的,也提高了它的兼容性和与平台无关性。

2:XML可以随意的定义自己的标签

你可以以任意文字定义标签,只要有开始符号和结束符号,只要符合XML的树形结构就可以,甚至可以使用中文。

3:与HTML的区别

XML重在存储数据,html重在显示数据。它们都是标记语言,但是html的标记是死的。xml的标记是活的。

4:XML是没有行为的

这句话的意思就是XML只能放在文件里面等着别人去读取,写入。自己本身没有执行的能力。

三:XML的常用功能

1:充当配置文件

无论是在java还是.net还是其他一些开发环境中,大部分都用的是xml作为配置文件。比如最典型的是web.xml配置文件,还有app.xml配置文件,这些让程序的开发都更加灵活。这里举一个在java中使用xml配置数据库连接信息和读取xml文件的一个例子。xml中由于可以添加任意节点,所以可以把数据库连接需要的一些字符串写入到xml中。

例如下面的一个连接oracle的xml文件:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <config>
  3. db-info>
  4. driver-name>oracle.jdbc.driver.OracleDriver</url>jdbc:oracle:thin:@127.0.0.1:1521:BJPOWERNusername>drppassword>


其中第一句是必须存在的,它声明了xml文件的版本和字符类型。其它节点都是自己自由定义的,需要注意的就是每个节点开始结束必须都对应,缺一不可。xml是一个树结构,只能包含一个根节点。

下面采用dom4j读取xml文件:

读取xml文件的方式有很多比如dom,jdom,sax等。dom4j是比较流行的一种,我们就选择使用dom4j来读取xml文件。

第一步:将dom4j用到的jar包拷到lib目录下,其中用到两个包一个是dom4j-1.6.jar。1.6是版本号。另一个是jaxen.jar文件(负责xpath语法的支持)

第二步:读取xml文件

[java] copy
  1. packagecom.lsh.drp.util;
  2. importorg.dom4j.Document;
  3. importorg.dom4j.DocumentException;
  4. importorg.dom4j.Element;
  5. importorg.dom4j.io.SAXReader;
  6. /**
  7. *采用单例模式读取xml配置文件sys-config.xml
  8. *@author李守宏
  9. *
  10. */
  11. publicclassConfigReader{
  12. privatestaticConfigReaderinstance=newConfigReader();
  13. //定义一个Document对象,根据dom编程,每一个xml文档读入内存以后都对应一个Document对象
  14. //通过这个对象来操作xml中的元素
  15. privateDocumentdoc;
  16. privateConfigReader(){
  17. try{
  18. //使用SAXReader对象将xml文件读入到doc对象中.其中sys-config.xml为xml文件名称和路径
  19. //这里由于是根目录没有就直接写文件名.
  20. doc=newSAXReader().read(Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml"));
  21. //使用xpath来对xml中的元素进行导航,再利用selectObject方法,就像是一棵树一样,先找到树根,再一层一层的往下找,
  22. //只需写明xml对应的路径就行
  23. //每一个读出来的xml元素都是一个Element对象,把读出的元素存储到element中
  24. //通过这个方法分别读出xml文件中每个结点
  25. ElementdriverNameElt=(Element)doc.selectObject("/config/db-info/driver-name");
  26. ElementurlElt=(Element)doc.selectObject("/config/db-info/url");
  27. ElementusernameElt=(Element)doc.selectObject("/config/db-info/username");点击打开链接
  28. ElementpasswordElt=(Element)doc.selectObject("/config/db-info/password");
  29. //再利用读到的Element对象的getStringValue()方法,取得它的具体值,这个值就是我们需要的内容,0); background-color:inherit">//最后就可以使用这些读到的数据了
  30. System.out.println(driverNameElt.getStringValue());
  31. }catch(DocumentExceptione){
  32. e.printStackTrace();
  33. }
  34. }
  35. staticConfigReadergetInstance(){
  36. returninstance;
  37. }
  38. 2:不同数据库之间交换数据

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读