XML配置文件的编写与解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SIMBA1949/article/details/79001314

xml配置文件的编写

xml文档实例

<?xml version="1.0" encoding="UTF-8"?>
<book>
  <name>Thinking in java</name>
  <author>Bruce Eckel</author>
  <price>108.00</price>
  <evaluate>good's book</evaluate>
</book>

什么是 XML?

  • XML 指可扩展标记语言(EXtensible Markup Language)。
  • XML 是一种很像HTML的标记语言。
  • XML 的设计宗旨是传输数据,而不是显示数据。
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准。

XML 用途

  • XML 把数据从 HTML 分离
  • XML 简化数据共享
  • XML 简化数据传输
  • XML 简化平台变更
  • XML 使您的数据更有用
  • XML 用于创建新的互联网语言

XML 树结构

这里写图片描述

XML 语法规则

  • XML 文档必须有根元素

  • XML 声明:

  • <?xml version="1.0" encoding="utf-8"?>
    
  • 所有的 XML 元素都必须有一个关闭标签

  • XML 标签对大小写敏感

  • XML 必须正确嵌套

  • XML 属性值必须加引号

  • 实体引用

  • &lt; < less than &gt; > greater than
    &amp; & ampersand &apo; apostrophe
    &quot; " quotation mark
  • XML 中的注释

  • <!-- This is a annotation -->
    
  • 在 XML 中,空格会被保留

  • XML 以 LF 存储换行

什么是 XML 元素?

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

一个元素可以包含:

  • 其他元素
  • 文本
  • 属性
  • 或混合以上所有…

元素命名规则

XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

可使用任何名称,没有保留的字词。

最佳命名习惯

使名称具有描述性。使用下划线的名称也很不错:
< first_name>、< last_name>。

名称应简短和简单,比如:< book_title>,而不是:< the_title_of_the_book>。

避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为您想要从 first 里边减去 name。

避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性。

避免 “:” 字符。冒号会被转换为命名空间来使用(稍后介绍)。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。

XML 属性

XML 属性必须加引号,属性值必须被引号包围,不过单引号和双引号均可使用。例如:

<person sex="female">

xml配置文件的解析

使用dom4j和xpath对xml配置文件的解析

需要导入的jar:

dom4j : dom4j-1.6.1.jar

xpath : jaxen-1.1-beta-6.jar

//创建SAXReader对象
SAXReader saxReader = new SAXReader();
//获取编译后的classes文件目录
String path = NewInstanceUtils.class.getClassLoader().getResource("").getPath();
//SAXReader读取配置文件,获取虚拟文档对象Document
Document document = saxReader.read(path+"configuration.xml");
//选中name属性值为name的单个节点
Node node = document.selectSingleNode("//element[@name='"+name+"']");
//将节点转换成元素对象
Element element = (Element) node;
//通过该元素对象获取元素的文本字符串
String text = element.getText();
//通过该元素对象获取该元素id属性值
String idValue = element.attributeValue("id");
阅读更多
换一批

没有更多推荐了,返回首页