1.eclipse xml快速注释:Ctrl+shift+c(单手操作)
直接撤销加反撤销!与html的注释一样<!-- -->,不允许放置在文档的第一行。
2.版本1.0,gbk编码,no代表不依赖编码(yes代表不依赖编码)
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<stus>
<stu id="10086">
<name>张三</name>
<age>18</age>
</stu>
<stu id="10087">
<name>李四</name>
<age>19</age>
</stu>
</stus>
3.小于号“<”和“&”是非法字符。
小于号“<”用<表示
大于号>用>表示
和号“&”用&表示
省略号“.”用&apos表示
引号“ " ”用"表示
4.<a href="http://www.baidu.com">张三</a> 这是html的便签,html解析后会自动返回
如果想把这句话当做普通的文本返回,需要用CDATA处理,通常在服务器给客户端返回数据的时候用:
<![CDATA[<a href="http://www.baidu.com">张三</a> ]]>
就不会认为它是标签元素。
5.XML解析方式:DOM解析会把所有文档解析之后读到内存当中 ,行程树状结构。然后解码。整个树状结构称之为一个对象,称之为document,会造成内存溢出。SAX解析不会造成内存溢出,如下图所示:
针对这两种结息方式的API:
一些组织或公司,针对以上两种解析方式,给出的解决方案有哪些?
jaxp sun公司,比较繁琐
jdom
dom4j使用比较广泛
6.XML解析
eclipse快速打印技巧:syso+alt+/
eclipse快速try-catch技巧:选中右击,Surround With,try-catch
Dom4j(一种接口)基本用法://视频13
element.element("stu");返回该元素下的第一个stu元素
element.elements("");返回该元素下的所有stu元素
1.创建sax读取对象
2.指定解析的xml源
3.得到根元素
4.根据根元素获取子元素或者下面的子孙元素
package com.itheima.test;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class MainTest {
public static void main(String[] args) {
try {
//1.创建sax读取对象
SAXReader reader = new SAXReader();//jdbc--classloader
//2.指定解析的xml源
Document document = reader.read(new File("src/xml/stus.xml"));
//3.得到元素
//得到根元素
Element rootElement=document.getRootElement();
//获取根元素下面的所有子元素age
List<Element> elements = rootElement.elements();
//遍历所有的stu元素
for(Element element:elements) {
//获取stu元素下面的name元素
String name = element.element("name").getText();
String age = element.element("age").getText();
String address = element.element("address").getText();
System.out.println("name="+name+"==age+"+age+"==address="+address);
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}