xml解析之JAXP(SUN公司官方提供的API )


JAXP:(XML处理的Java API) 这是java自带的处理xml的API,虽然比较柴,但是SUN公司还是给提供了;

JAXP(Java API for XMLProcessing,意为XML处理的Java API)是Java XML程序设计的应用程序接口之一,它提供解析和验证XML文档的能力。JAXP是在Java社区进程下开发的,包括JSR 5 (JAXP 1.0)和 JSR 63 (JAXP 1.1和1.2)两个规范。

JAXP解析XML的三种基本接口为:
    文档对象模型解析接口或DOM接口
    XML简单API解析接口或SAX接口
    XML流API或StAX接口(是JDK 6的一部分,为JDK 5提供单独的包)除了解析接口,JAXP还提供了XSLT接口用来对XML文档进行数据和结构的转换。

JAXP之xml的解析方式有: DOM解析和SAX解析

    ========================JAXP之DOM方式解析xml文件代码=========================
    @Test
    public void domTest() throws ParserConfigurationException, FileNotFoundException, SAXException, IOException{
        DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
        DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
        Document parse = newDocumentBuilder.parse(new FileInputStream("demo.xml"));
        NodeList elementsByTagName = parse.getElementsByTagName("address");
        for (int i = 0; i < elementsByTagName.getLength(); i++) {
            String textContent = elementsByTagName.item(i).getChildNodes().item(1).getTextContent();
            System.out.println(textContent);
            
        }
    }
    ========================JAXP之SAX方式解析xml文件代码=========================
        @Test
    public void saxTest() throws ParserConfigurationException, SAXException, IOException{
        SAXParserFactory newInstance = SAXParserFactory.newInstance();
        SAXParser newSAXParser = newInstance.newSAXParser();
        newSAXParser.parse(new FileInputStream("demo.xml"), new ContentHandler() {
            
            @Override
            public Object getContent(URLConnection urlc) throws IOException {
                // TODO Auto-generated method stub
                return null;
            }
        });
    }    
    
    ========================以下个人总结=========================    
    其实xml就是一个文件,我们解析xml的逻辑无非就是用io流读取文件,然后对读取的内容进行元素标签识别,翻译出xml文件内容
    的过程,这些操作在SUN的JAXP中做了一些封装,但是我们从上边的代码可以看出操作有点儿麻烦,因此,就有一些开源组织,自己
    编写了一些解析xml的开发包,比如dom4j,下一章,我们聊聊dmo4j...
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值