什么是xml文件格式

  • 我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,我们需要帮助程序做拆分,因此出现了各种各样的数据格式以及拆分方式。比如,可以是这样的数据为“too young,too simple,sometimes naive”然后按照逗号拆分,第一部分为年龄,第二部分为阅历,第三部分为结果。也可以是这样的数据为“too_young* too_simple*sometimes_naive”从数据开头开始截取前面十一个字符,去掉号并把下划线替换为空格作为第一部分,再截取接下来的十一个字符同样去掉并替换下划线为空格作为第二部分,最后把剩下的字符同样去号体会空格作为第三部分。这两种方式都可以用来容纳数据并能够被解析,但是不直观,通用性也不好,而且如果出现超过限定字数的字符串就容纳不了,也可能出现数据本身就下划线字符导致需要做转义。基于这种情况,出现了xml这种数据格式, 上面的数据用XML表示的话可以是这样
<person age="too young" experience="too simple" result="sometimes naive" />

也可以是这样

<person><age value="too young" /><experience value="too simple" /><result value="sometimes naive" />
</person>

两种方式都是xml,都很直观,附带了对数据的说明,并且具备通用的格式规范可以让程序做解析。如果用json格式来表示的话,就是下面这样

{"age":"too young","experience":"too simple","result":"sometimes naive"
}

看出来没,其实数据都是一样的,不同的只是数据的格式而已,同样的数据,我用xml格式传给你,你用xml格式解析出三个数据,用json格式传给你,你就用json格式解析出三个数据,还可以我本地保存的是xml格式的数据,我自己先解析出三个数据,然后构造成json格式传给你,你解析json格式,获得三个数据,再自己构造成xml格式保存起来,说白了,不管是xml还是json,都只是包装数据的不同格式而已,重要的是其中含有的数据,而不是包装的格式。

XML文件创建格式

  • 例:
<?xml version="1.0" encoding="utf-8" ?>
<root><part id = "01" name="选项一"><name>我是徐茅山</name><age>今年20岁</age><sex>男</sex></part><part id="02" name="选项二"><name>我是李逍遥</name><age>今年22岁</age><sex>男</sex></part>
</root>

xml文件的解析

  • 这里只是简单的提一下关于xml文件的解析,我使用的是比较流行的dom4j解析,[dom4j的文件下载地址](“https://dom4j.github.io/“)
  • 实例:
package com.xinsi.qi.utils;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;import java.io.File;
import java.util.List;public class Dom4jXml {public void test(){try {File inputFile = new File("F:\\J2EE学习资料\\demoLes03\\web\\WEB-INF\\test.xml");SAXReader reader = new SAXReader();Document document = reader.read(inputFile);System.out.println("Root element :"+document.getRootElement().getName());Element classElement = document.getRootElement();List<Node> nodes = document.selectNodes("/class/part[@id='02']");System.out.println("--------------------");for (Node node:nodes){System.out.println("标签名=:"+node.getName());System.out.println("姓名:"+node.selectSingleNode("name").getText());System.out.println("年龄:"+node.selectSingleNode("age").getText());System.out.println("性别:"+node.selectSingleNode("sex").getText());}} catch (Exception e1) {e1.printStackTrace();}}}
  • 首先创建一个xml文件,这里使用的xml文件就是上面的xml例子,使用dom4j,先创建文件,将文件引入。
 File inputFile = new File("F:\\J2EE学习资料\\demoLes03\\web\\WEB-INF\\test.xml");
  • 再创建dom4j的读取文件类,来读取xml文件
  SAXReader reader = new SAXReader();
  • Document是获取根元素类,控制台输出时,如下
System.out.println("Root element :"+document.getRootElement().getName());
输出Root element :root,该文件的根元素名称为root
  • Element类是获取根元素内的元素
  • List nodes = document.selectNodes(“/class/part[@id=’02’]”) 这段代码的意思是,定位到该元素属性的位置,使用该方法还需要下载,jaxen.jar包,jaxen的下载地址
  • @id=’02’的意思是定位到id为02的元素属性,以遍历的形式输出出来。
for (Node node:nodes){
System.out.println("标签名=:"+node.getName());
System.out.println("姓名:"+node.selectSingleNode("name").getText());
System.out.println("年龄:"+node.selectSingleNode("age").getText());
System.out.println("性别:"+node.selectSingleNode("sex").getText());
}
  • 最终控制台的输出结果为:
标签名=:part
姓名:我是李逍遥
年龄:今年22岁
性别:男

xml文件基本格式与解析相关推荐

  1. xml文件基本格式与解析(一)

    什么是xml文件格式 我们要给对方传输一段数据,数据内容是"too young,too simple,sometimes naive",要将这段话按照属性拆分为三个数据的话,就是, ...

  2. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  3. libxml2对XML文件的创建、解析、查找、修改

    一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...

  4. 【unity3d--初始学习五--c#脚本对xml文件的创建和解析】

    本人用c#编写脚本. 创建xml文件时,主要用到System.Xml包中的XmlDocument,XmlNode,XmlElement.下面是创建xml文档的一般步骤: XmlDocument doc ...

  5. xml文件的三种解析方式 DOM SAM PULL

    <?xml version="1.0" encoding="UTF-8"?> <root><student id="1& ...

  6. java在线打开xml文件_java实现简单解析XML文件功能示例

    本文实例讲述了java实现简单解析XML文件功能.分享给大家供大家参考,具体如下: package demo; import java.io.File; import java.io.IOExcept ...

  7. DNN Navisuite菜单模块原始XML文件的格式

    DNN 比较好用的一个菜单模块式Navsuite模块,这个模块因为使用XML+XSL的技术手段,可以灵活的生成各种各样的菜单样式. 你可以通过修改style目录下的xsl文件来创建自己的菜单样式,但有 ...

  8. 解析las文件_LAS格式的解析与转换

    LAS 格式的解析与转换 孙爱怡,王健 [摘 要] 摘 要: 本文主要探讨 LAS 数据结构的发展历程 , 在分析已有四种版 本的基础上 , 探讨 LAS 标准发展趋势 , 并采用 C++ 语言对该格 ...

  9. 一个mapper接口有多个mapper.xml 文件_MyBatis 源码解析:映射文件的加载与解析(上)

    上一篇我们分析了配置文件的加载与解析过程,本文将继续对映射文件的加载与解析实现进行分析.MyBatis 的映射文件用于配置 SQL 语句.二级缓存,以及结果集映射等,是区别于其它 ORM 框架的主要特 ...

最新文章

  1. ubuntu9.10 安装 eclipse3.5 的问题
  2. 笔记-项目沟通管理-高效的会议方案
  3. linear-gradient与radial-gradient
  4. 机器学习面试题(part2)
  5. 工作404-判断浏览器函数
  6. [vue] watch的属性用箭头函数定义结果会怎么样?
  7. 移动端阻止body左右偏移
  8. 计算机程序设计a,计算机程序设计 A(1620401)
  9. 推荐算法 php SQL,MixPHP 独特的SQL构建方式
  10. .NET_.NET Copy Web 部署概念_01-3
  11. Oracle中varchar,varchar2,nvarchar,nvarchar2的区别
  12. EverWeb for Mac(网页设计软件)
  13. 数字核心 驱动转型:SAP S/4HANA 数字化转型论坛 - 杭州站 即刻报名
  14. php fsockopen,php fsockopen()有什么用?
  15. 2048小游戏(变态版哦)
  16. 全球与中国雷达信标市场深度研究分析报告
  17. 将html转成pdf加水印,HTML页面转PDF加水印解决截取不全问题
  18. python 两点曲线_圆锥曲线第八节:直线与椭圆的相交
  19. 免费素材库:mixkit
  20. 安装VS2010旗舰版时出现.Net framework4.0,安装失败

热门文章

  1. 2021年总结 2022年展望
  2. U-Boot中支持USB
  3. Direct2D教程(一)
  4. Typora+github代替云笔记(git上传文件至github)
  5. 如何将网站提交到百度的办法
  6. response输出文件的时候,解决迅雷下载的问题
  7. 三、项目分工(华为项目管理法-孙科炎读书摘要)
  8. 手写一个迷你版的 Tomcat 猫
  9. 基于BGP技术和防火墙双机热备技术的校园网设计与实现
  10. 计算机学硕调剂分数,计算机考研调剂的一些经验