XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,类似HTML。
XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系
<?xml version="1.0" encoding="UTF-8" ?>
<天津 id=‘022‘>
<!-- -->
<![CDATA[展示的内容]]>
* standalone="yes或者no" 代表xml的文件是否是独立的。(如果是no,不独立,可以引入外部的文件)(可选的)
对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。例如:下面两段内容的意义是不一样的
一个元素可以有多个属性,每个属性都有它自己的名称和取值,例如:<mytag id=“12” …/>
元素中的属性是不允许重复的
CDATA是Character Data的缩写
作用:把标签当做普通文本内容;
语法:<![CDATA[内容]]>
例子:
<![CDATA[ <itcast>www.itcast.cn</itcast> ]]> 以上红色部分被当做普通文本而不是标签
Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
使用Dom4j开发,需下载dom4j相应的jar文件。
获取xml解析器 SAXReader saxReader=new SAXReader();
获取dom对象 Document doc=saxReader.read(new File(“xml文件路径”));(注意,xml文件路径最好放到项目里面,写路径地址的时候,使用相对地址 ./表示当前项目路径)
nodeIterator() 获取当前document或者当前标签的所有子节点(注意:节点包括注释节点(注释节点name为null,值text为注释内容),标签节点,文本节点,属性节点)
elements():获取标签下面的所有子标签,返回list的标签集合
elementIterator():获取标签下面的所有子标签,返回标签迭代器
getRootElement() 获取当前文档的根标签
element("标签名字")获取某个标签下面指定名称的第一个标签对象
elementText("标签名字")获取某个标签下面指定名称的第一个标签的text内容
attribute("属性名称") 获取某个标签的指定名称的属性对象
attributeValue("属性名称") 获取某个标签的指定名称的属性对象值
DocumentHelper.createDocument() 创建document文档
addElement("Students"); 增加指定名称的标签
addAttribute("属性名", "属性值") 给标签新增指定的属性名称和属性值
nameEle.setText("文本内容"); 给标签设置指定的内容
OutputFormat.createPrettyPrint() 指定xml内容输出的文件格式:带有空格和换行,格式美观
OutputFormat.createCompactFormat() 指定xml内容输出的文件格式:去掉空格和换行,一般用于正式的服务器上
format.setEncoding("utf-8"); //设置xml文件的编码和解析的编码
XMLWriter writer=new XMLWriter(outputStream, format);创建xml写入的对象
writer.write(doc); 写入document文档
attribute.setText("id2"); 给属性赋值
attribute.setValue("id2"); 给属性赋值 也可以通过增加同名属性的方法,修改属性值
element.element("name").setText("ddddd") 给某个标签的文本设置值
rmElement.detach() 删除rmElement标签
element.remove(rmElement) 删除rmElement标签
attribute.detach() 删除attribute属性
element.remove(attribute); 删除element属性
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
DTD(Document Type Definition),全称为文档类型定义。
DTD约束即可以作为一个单独的文件编写,也可以在XML文件内编写
使用内部DTD
<!DOCTYPE 根节点 [ DTD的代码 ]>
使用外部DTD
<!DOCTYPE 根元素 SYSTEM “DTD文档路径”>
如:<!DOCTYPE 书架 SYSTEM “book.dtd”>
使用网络DTD
当引用的DTD文档在公共网络上时,采用如下方式:
<!DOCTYPE 根元素 PUBLIC “DTD名称” “DTD文档的URL”> 如:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
原文:https://www.cnblogs.com/taozizainali/p/10945455.html