XML配置文件的编写与解析

简介: XML配置文件的编写与解析

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 树结构

image.png


XML 语法规则


  • XML 文档必须有根元素


  • XML 声明:
<?xmlversion="1.0"encoding="utf-8"?>


  • 所有的 XML 元素都必须有一个关闭标签


  • XML 标签对大小写敏感


  • XML 必须正确嵌套


  • XML 属性值必须加引号


  • 实体引用
&lt;

<

less than

&gt;

>

greater than

&amp;

&

ampersand

&apo;

apostrophe




&quot;

"

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");


目录
相关文章
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
3297 1
|
10月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
454 0
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
636 15
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
1225 1
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
2666 12
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
308 12
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
948 140
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1559 29
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
623 4
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

推荐镜像

更多
  • DNS