`

xml的读取(sax)

    博客分类:
  • java
阅读更多

读取xml:

    Document document = XmlUtil.getDocument( filePath );

    public static Document getDocument( String filePath ) throws ParserConfigurationException, SAXException,
            IOException {

        // 需要添加判断参数为空操作

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        builder = factory.newDocumentBuilder();

        return builder.parse( new File( filePath ) );
    }

   

读取单个节点:

    public static Node getSingleNode( Node contextNode, String xPath ) throws TransformerException,
            XPathExpressionException {

        // 需要添加判断参数为空操作

        XPathFactory factory = XPathFactory.newInstance();
        XPath path = factory.newXPath();

        NodeList nodeList = (NodeList) path.evaluate( xPath, contextNode, XPathConstants.NODESET );

        return nodeList.item( 0 );
    }


读取单个节点list:

NodeList groupingList = XmlUtil.getNodeList( document, "//xml根节点/page[@id='" + pageNo+ "']/grouping" );


每一层节点都可以用[@属性key='属性值']的形式传入属性参数来读取。

    public static NodeList getNodeList( Node contextNode, String xPath ) throws XPathExpressionException,
            ParserConfigurationException, SAXException, IOException, TransformerException {

        // 需要添加判断参数为空操作

        XPathFactory factory = XPathFactory.newInstance();
        XPath path = factory.newXPath();

        NodeList nodeList = (NodeList) path.evaluate( xPath, contextNode, XPathConstants.NODESET );

        return nodeList;
    }


从指定node取得属性:

    Node rowNode = nodeList.item( i );
    String rowNo = XmlUtil.getAttribute( rowNode, "row" );

    public static String getAttribute( Node contextNode, String attributeName ) {

        // 需要添加判断参数为空操作

        String target = attributeName.toUpperCase();

        NamedNodeMap attributes = contextNode.getAttributes();

        for ( int i = 0; i < attributes.getLength(); i++ ) {
            if ( target.equals( attributes.item( i ).getNodeName().toUpperCase() ) ) {
                return attributes.item( i ).getNodeValue();
            }
        }

        return null;
    }


从节点list取得标签内text内容:

    public static String getTextContentsByName( NodeList nodeList, String nodeName ) {

        // 需要添加判断参数为空操作

        String textContents = StringUtil.EMPTY;

        for ( int i = 0; i < nodeList.getLength(); i++ ) {
            Node node = nodeList.item( i );
            if ( node.getNodeName().equals( nodeName ) ) {
                textContents = node.getTextContent();
                break;
            }
        }

        return textContents;
    }

分享到:
评论

相关推荐

    sax解析xml本地读取xml

    标题“sax解析xml本地读取xml”指的是使用SAX解析器来读取和解析存储在本地文件系统中的XML文件。这种方式适用于处理那些无法一次性加载到内存中的大型XML文档,或者对于内存有限的环境。 SAX解析的基本工作原理...

    xml sax解析

    SAX解析的核心思想是读取XML文档时,每当遇到一个元素、属性、文本等结构,都会触发一个相应的事件,然后通过回调函数来处理这些事件。这种方式非常适合处理大型XML文档,因为它不需要一次性将整个文档加载到内存中...

    XML-java.rar_XML SAX_sax_sax xml_sax 解析 xml_xml using dom

    2. **SAX解析**:SAX是一种事件驱动的解析方式,它逐行读取XML文档,遇到元素、属性等时触发相应的事件处理器。这种方式节省内存,适合处理大型XML文件。"sax_xml sax_解析_xml"标签表明了本压缩包包含使用SAX解析...

    QT使用SAX读取xml高效-快速.rar

    QT使用SAX读取xml高效-快速.rar SAX(Simple API for XML) 如果你只想读取并显示整个XML文档,那么SAX是很好的选择,因为它提供了比DOM更简单的接口,并且它不需要将整个XML文档一次性读入内存,这样便可以用来读取...

    Android读取XML文件(SAX)

    SAX解析器按照XML文档的顺序逐个读取元素,当遇到元素开始、结束、属性、文本等事件时,会触发相应的回调函数。开发者需要实现`DefaultHandler`接口或其子类,并重写这些回调方法来处理解析过程中的事件。 二、设置...

    test_sax.rar_XML SAX vs20_sax_sax xml_读取XML文档

    本文将重点讨论SAX解析器,并通过描述中的"test_sax.rar"压缩包中的示例,讲解如何使用SAX解析器在Visual Studio 20(VS20)环境下读取XML文档。 SAX解析器是一种基于事件驱动的解析方式,它不会一次性加载整个XML...

    使用SAX读取XML文件

    本文将深入探讨如何使用SAX(Simple API for XML)解析器来读取XML文件,这是一种基于事件驱动的解析方式,非常适合处理大型或内存受限的环境。 SAX解析器不同于DOM(Document Object Model)解析器,DOM会将整个...

    Java解析XML文档(二):sax读取xml文件导出excel

    SAX解析器在读取XML文档时,会触发一系列的事件,如开始文档、结束文档、开始元素、结束元素等。开发者需要定义一个ContentHandler类来处理这些事件,当解析器遇到相应的XML元素时,就会调用ContentHandler中的方法...

    SAX2方法读取XML文件

    2. **创建SAX解析器实例**:通过`XercesDOMParser`类创建SAX解析器对象,这个对象会负责读取XML文件并触发事件。 3. **设置处理器**:实现`DefaultHandler`或自定义的处理器类,覆盖其回调方法,如`startElement`、...

    Java中XML配置文件的读取(sax).doc

    Java中XML配置文件的读取(SAX) XML配置文件是Java开发中常用的配置文件格式,特别是在J2EE项目中。XML文件可以存储配置信息,并且易于维护和修改。然而,在Java中读取XML配置文件成了一个需要解决的问题。本文将...

    Xml.zip_JAVA读取xml_XML读取_java_saxreader

    Java作为一种强大的编程语言,提供了多种方式来读取和操作XML文档,其中包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。本教程将重点介绍如何使用SAXReader在Java中...

    XML的SAX解析

    在SAX解析中,XML文档被读取一次,遇到每个元素、属性或其他结构时,会触发相应的回调函数。这种方式非常适合处理大型XML文件,因为不需要一次性加载整个文档到内存中。下面将详细介绍SAX解析的工作原理、优点以及...

    SAX_XML.rar_XML SAX_sax xml_xml

    SAX解析器在处理大型XML文件时更高效,因为它只在需要时读取数据,从而减少了内存消耗。 本示例中,"SAX_XML.rar"包含了一个关于如何使用SAX解析XML的项目。"SaxParsePage.class"是已经编译好的Java类文件,用于...

    c++ xml读取操作库

    本文将深入探讨C++中进行XML读取操作的库,并结合提供的“ReadXml”工程源码和动态链接库,解析其核心概念和使用方法。 一、C++中的XML库选择 C++中处理XML的库主要有以下几种: 1. TinyXML:这是一个小型、易于...

    xml.rar_android_android sax_android sax xml_java xml_sax

    - SAX是一种事件驱动的解析器,它逐行读取XML文档,遇到元素、属性等时触发相应的事件回调。这种方式内存消耗小,适用于处理大型XML文件。 - Android中的SAX解析器实现为`org.xml.sax.helpers.DefaultHandler`,...

    XML通过sax解析JSON格式

    标题中提到的"XML通过SAX解析为JSON格式"是指使用SAX解析器来读取XML文档,并将其转换成等效的JSON对象。SAX解析器以流式方式处理XML,当遇到文档的不同部分(如开始标签、结束标签、文本节点等)时,会触发相应的...

    使用JAXP之SAX读取XML内容

    SAX解析器逐行读取XML文件,当遇到XML文档的各个元素、属性等结构时,会触发相应的事件回调,如开始文档、结束文档、开始元素、结束元素等。程序通过实现这些事件接口,对解析过程进行控制,从而实现对XML内容的处理...

    SAXParser-用SAX读取大于100M的xml文件(java)

    压缩包里面有两个文件:SAX.java和SAXparse.java 用来解析大于100M的xml文件,SAX读取xml不同于DOM方式,DOM方式在解析xml前需要全部加载xml文件,当xml文件很大时,就会出现内存不足的问题,而SAX则是逐行读取xml...

    Simple API for XML(SAX)详解与实例

    SAX不存储整个XML文档于内存中,而是逐行读取,这使得它在处理大型XML文件时比DOM(Document Object Model)更高效。它通过调用预先定义好的回调方法来解析XML文档,这些方法如`startElement`、`endElement`和`...

Global site tag (gtag.js) - Google Analytics