xml配置文件的编写
xml文档实例
<?xmlversion="1.0"encoding="UTF-8"?> <book> <name>Thinkinginjava</name> <author>BruceEckel</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 声明:
<?xmlversion="1.0"encoding="utf-8"?>
- 所有的 XML 元素都必须有一个关闭标签
- XML 标签对大小写敏感
- XML 必须正确嵌套
- XML 属性值必须加引号
- 实体引用
< | < |
less than |
> |
> | greater than |
& |
& |
ampersand |
&apo; |
’ |
apostrophe |
" |
" |
quotation mark |
XML 中的注释
<!--Thisisaannotation-->
- 在 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 属性必须加引号,属性值必须被引号包围,不过单引号和双引号均可使用。例如:
<personsex="female">
xml配置文件的解析
使用dom4j和xpath对xml配置文件的解析
需要导入的jar:
dom4j : dom4j-1.6.1.jar
xpath : jaxen-1.1-beta-6.jar
//创建SAXReader对象 SAXReadersaxReader = newSAXReader(); //获取编译后的classes文件目录 Stringpath = NewInstanceUtils.class.getClassLoader().getResource("").getPath(); //SAXReader读取配置文件,获取虚拟文档对象DocumentDocumentdocument = saxReader.read(path+"configuration.xml"); //选中name属性值为name的单个节点 Nodenode = document.selectSingleNode("//element[@name='"+name+"']"); //将节点转换成元素对象 Elementelement = (Element) node; //通过该元素对象获取元素的文本字符串 Stringtext = element.getText(); //通过该元素对象获取该元素id属性值 StringidValue = element.attributeValue("id");