XML学习

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.小于号“<”和“&”是非法字符。

小于号“<”用&lt表示

大于号>用&gt表示

和号“&”用&amp表示

省略号“.”用&apos表示

引号“ " ”用&quot表示

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();
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值