XML的创建及解析

XML:可扩展的标记性语言,提供了一个跨平台,跨网络,跨程序的语言数据描述方式,使用XML可以方便的实现数据交换,系统配置等 常见功能---不过现在常用的数据交换是使用json

XML:语法规则
<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student id="1000">
        <name>彭</name>
        <age>23</age>
    </student>
</students>
    1.区分大小写
    2.第一行是前导区,只能放<?xml version="1.0" encoding="utf-8" ?>
    3.除了第一行之外的称为数据区:所有数据区必须有一个根节点,一个根节点可以包含多个子节点,但是每个节点必须完结
    4.XML中的标签称为元素,第一个标签称为根节点<students>,上面代码中的 彭 被称为文本节点
    5.XML中标签不能嵌套

SAX解析XML
    1.首先需要定义一个帮助类,并且继承DefaultHandler类
    2.实现 startDocument() ,endDocument(), startElement(), endElement(), characters()
其中startDocument() ,endDocument()只运行一次,所以可以在startDocument()  中初始化集合等,
其中startElement(),endElement(),characters()多次运行。
    3.建立专门开始解析的类
    3.1首先建立SAX的工厂类实例:SAXParserFactory factory = SAXParserFactory.newInstance();    
    3.2通过工厂建立解析器:SAXParser parser = factory.newSAXParser();
    4.SAX解析的时候需要帮助类和一个获取xml文件的输入流,所以要先创建上面继承DefaultHandler类的实例和输入流实例:
            SaxHandlerUtils handler = new SaxHandlerUtils();
            InputStream is = new FileInputStream("db/book.xml");

            sax.parse(is, handler);


PULL解析XML
步骤和SAX解析类似--不是JDK自带,需要JAR包--(安卓自带)

1.首先创建Pull的工厂实例
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
2.再通过工厂类创建解析器
XmlPullParser parser = factory.newXmlPullParser();
3.获取数据源
parser.setInput("xml地址","utf-8");
4.获取事件的类型
获取的事件类型都是int型的常量,这些事件的类型代表的是程序运行的位置(因为在JAR文件中,把这些 END_DOCUMENT,START_TAG状态都定义成了常量 )
END_DOCUMENT代表运行到了根节点的关闭元素的位置
START_DOUCUMENT代表刚开始运行根节点
START_TAG代表运行到元素标签(就是里面有属性,或者标签开始和闭合之间有文本的标签)
END_TAG代表运行到元素标签的闭合初
int type = parser.getEventType();
5.需要用while(type != END_DOCUMENT)循环不断判断事件类型是不是等于END_DOCUMENT
6.获取元素的标签名(用这个来判断xml文件中的元素名是否等于当前获取到的元素名称,因为程序是不断运行的,)
String tag = parser.getName();


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值