`
反求诸己
  • 浏览: 545239 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

XML解析总结

    博客分类:
  • xml
 
阅读更多

1:XML和javaBean之间的映射

只要总结了两种方式:

1.1:XMap

the third support : nuxeo-common-5.4.3.jar(latest)

主要的操作对象:

org.nuxeo.common.xmap.XMap;

用法示例:

        List<UPCallcenterMenuTab> menuList = null;
        XMap xmap = new XMap();
        xmap.register(UPCallcenterMenuTabList.class);
        InputStream in = new FileInputStream(new File(filePath));
        Object[] result = (Object[]) xmap.loadAll(in);
        UPCallcenterMenuTabList menuTabList = (UPCallcenterMenuTabList) result[0];
        menuList = menuTabList.getMenuList();

1.2:XStream

the third support :xstream-1.4.1.jar

主要的操作对象:

com.thoughtworks.xstream.XStream

用法示例:

/****
     * read operation
     *
     * @param filePath
     *            :specified file path
     * @throws IOException
     */
    @SuppressWarnings("unchecked")
    private static List<UPCallcenterMenuTab> convertXMLToList(String filePath)            {
        List<UPCallcenterMenuTab> menuList = null;
        if (StringUtils.isEmpty(filePath) || StringUtils.isBlank(filePath)) {
            throw new NullPointerException("filePath is invalid!");
        }
        // 1:XStream instance
        XStream xstream = new XStream();
        xstream.alias("menus", List.class);
        xstream.alias("menu", UPCallcenterMenuTab.class);
        // 2:used to read bytes from file
        //FileReader fr = new FileReader(filePath);
         InputStreamReader reader = null;
        try {
            reader = new InputStreamReader(new FileInputStream(filePath),"UTF-8");
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // buffer reader
        BufferedReader br = new BufferedReader(reader);
        // 3:construct ObjcetInputStream instance
        // ObjectInputStream ois = xstream.createObjectInputStream(br);

        // 4: read data using reader
        try {
            menuList = (List<UPCallcenterMenuTab>) xstream.fromXML(br);
            // menuList = (List<UPCallcenterMenuTab>)ois.readObject();
            // } catch (ClassNotFoundException e) {
        } catch (Exception e) {
            // TODO Auto-generated catch block
            logger.info("Excetpion ocurred when converting xml data to object");
            logger.info(e.getMessage(),e);
            //throw e;
        }

        return menuList;
    }

1:3:XMLConfiguration

the third support:  commons-configuration-1.3.jar

主要的操作类:org.apache.commons.configuration

用法示例:

public final class Configuration {
    private static Logger log = Logger.getLogger(Configuration.class);
    private static Configuration configuration;
   
    private XMLConfiguration config;
   
    private Configuration(){
        try{
            config = new XMLConfiguration();
            config.setDelimiterParsingDisabled(true);           
            config.load("lokosuite.cfg.xml");

        }catch(Exception e){
            log.error(this,e);
        }
    }
   
    public static Configuration getInstance(){
        if(configuration == null){
            configuration = new Configuration();
        }
        return configuration;
    }
   
    public String getString(String key){
        return config.getString(key);
    }
   
    public static void main(String[] args) throws Exception{
        String text= Configuration.getInstance().getString("membership.active-text");
        System.out.println(Configuration.getInstance().getString("shopping.transSuccess-text"));
        System.out.println(Configuration.getInstance().getString("membership.active-subject"));
        System.out.println(StringUtils.replace(text,"{activate-url}","adfasdf"));
        System.out.println(Configuration.getInstance().getString("core.version"));
       
       
    }
}

继续:

1.4:xml文件和xml字符串之间的转换

<操作前:dom4j-1-6-1.jar 和 jaxen-1.1-beta-6.jar是必须的;附件中有这两个jar包>

/**
         * 在运行操作xpath的程序中 添加jaxen-1.1-beta-6.jar
         * 以防抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常
 */

1.4.1:xml文件转换为xml字符串

String xmlFileName = "你的文件绝对路径";

SAXReader  reader = new SAXReader();

FileInputStream fileInputStream = new FileInputStream(xmlFileName );

BufferedReader bufferReader = new BufferedReader(new InputStreamReader(fileInputStream ,"UTF-8"));

Document document = reader.read(bufferReader);

 

String xmlString = document.asXML();

1.4.2:xml字符串转换为xml文件

 

String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><book>text</book>";

 

SAXReader reader = new SAXReader(false);
reader.setEncoding("UTF-8");
        try {
            ByteArrayInputStream byteStream = new ByteArrayInputStream(xmlString.getBytes());
       
            Document document = reader.read(byteStream);

            String fullFileName = "你要生成的完整的xml文件路径";

            File newFile = new File(fullFileName );
            Writer writer = new FileWriter(newFile);
           // 格式化输出
          OutputFormat format = OutputFormat.createPrettyPrint();

          // 设置编码
          format.setEncoding("UTF-8");

          XMLWriter xmlWriter = new XMLWriter(writer, format);


           // String xPathString = "//book";
           // Element element = (Element)document.selectSingleNode(xPathString);


           // System.err.println(element.getText());


        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

/********************************************************暂时告一段落!********************************************************/

待续。。。

 

分享到:
评论

相关推荐

    JAVA -XML解析总结

    【Java - XML解析总结】 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和Web服务。Java 提供了多种方法来解析 XML 文档,主要包括 DOM(Document Object Model)和 ...

    Symbian s60 3rd xml 解析总结

    doc:解析原理和总结 txt:mime类型 zip:HelloXml解析例子(运行环境3rd mr,carbide 1.3/2.0)

    C# XML解析方式

    根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...

    xml解析文件的两种方式

    本文将详细介绍XML解析文件的两种主要方式:SAX(Simple API for XML)和DOM(Document Object Model)。 **1. DOM解析** DOM解析方式是将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个树的每个...

    iphone开发之xml解析

    在提供的文档中,如"XML解析技术研究.doc"、"DOM和SAX概念的总结.doc"等,可以深入探讨XML解析的细节,包括解析过程、性能比较、错误处理等。"stu_XML_34_1"和"tea_XML2"可能包含XML解析的实例代码,帮助理解实际...

    xml解析器(解决XML错误)

    总结起来,XML解析器是XML应用开发不可或缺的一部分,它们确保XML数据的准确性和一致性。这个压缩包提供的MSXML组件和安全更新,旨在提供一个稳定、安全的环境来处理XML文档,无论你是XML初学者还是经验丰富的开发者...

    STM32解析XML完整工程.zip

    1. Mini-XML程序员开发手册_Version2.5.pdf:这是Mini-XML库的开发手册,该库是一个小型、轻量级且无需外部依赖的XML解析器,适用于资源有限的嵌入式环境,如STM32微控制器。手册将详细介绍如何使用这个库进行XML...

    四中最常用的XML文件解析总结.doc

    在IT领域,特别是软件开发与数据处理中,XML(可扩展标记语言)作为一种重要的数据交换格式,被广泛应用于各种场景。对于XML文件的解析,...理解并掌握这些XML解析技术,将极大地提升你在处理XML数据时的能力和效率。

    XML解析器安装包

    总结来说,"XML解析器安装包"提供了在Windows环境中处理XML文档的基础,而MFC中的#import指令和IXMLDOMDocumentPtr类则为我们提供了一种方便的途径来操作XML数据。通过这些工具,开发者可以轻松地在MFC应用中集成XML...

    XML解析还原代码

    总结,XML解析还原代码的核心是将XML文档转换为DOM树,存储到二叉树中,然后从二叉树中恢复XML格式并输出。这个过程涉及XML解析、二叉树操作和文件I/O等多个技术点,对于理解和处理XML数据具有重要意义。在实际应用...

    易语言 XML 解析模块

    总结来说,易语言XML解析模块是易语言环境下的一个强大工具,它通过对象操作的方式,使XML处理变得简单易懂,同时也提供了快速的处理速度。无论是新手还是经验丰富的开发者,都能借助这个模块轻松地在易语言项目中...

    java xml 解析包

    Java XML解析包主要指的是用于处理XML(eXtensible Markup Language)文档的库,它使得在Java程序中读取、写入、修改和操作XML变得简单。本篇将详细介绍使用Java进行XML解析的关键知识点,以dom4j-1.6.1为例。 1. *...

    多层镶嵌xml解析.zip

    总结一下,DOM4J提供了一种灵活、高效的XML解析方式,尤其适用于处理具有复杂结构的XML文档。通过创建和操作DOM4J的`Element`对象,我们可以方便地解析XML,提取所需数据,并将其存储到自定义的实体类中。对于大型...

    XML解析 很全 一看就懂的东东

    总结起来,选择哪种XML解析方法取决于具体的需求:DOM适合处理小到中等大小的文档,并提供完整的文档视图;SAX适合处理大型文档或需要流式处理的情况;JDOM和DOM4J则提供了更面向Java的API,简化了XML操作,尤其是...

    java实现xml解析word文档代码实现

    Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...

    SAP解析xml abap解析xml

    根据提供的文件信息,本文将详细解释SAP系统中如何解析XML文档,并将其内容提取到内部表中的过程。此过程涉及到了ABAP编程语言的具体应用,包括数据结构定义、数据提取逻辑以及与SAP系统的交互。 ### SAP 解析 XML ...

    XML解析jar

    在Java中,解析XML文件是常见的任务,本篇将详细讲解三种常用的XML解析器:DOM4J、SAX2R2以及JAXB。 1. DOM4J: DOM4J是一个强大的Java库,它提供了对XML的全面支持,包括读取、写入、修改和操作XML文档。DOM4J基于...

    windows平台XML解析工具

    总结来说,foxe_CHS.exe作为一款Windows平台的XML解析工具,以其小巧、稳定、中文支持等特性,成为了开发者处理XML数据的得力助手。它不仅简化了XML文档的查看过程,还提升了问题诊断和修复的效率,对于互联网应用的...

    XMLParser(XML解析代码 C++版)

    总结来说,XMLParser是针对C++开发的XML解析工具,可能是基于TinyXML库实现,提供了易于使用的API来读取、修改和保存XML文档。它适用于需要处理XML数据的各类应用场景,尤其适合那些对解析器大小和复杂性有严格限制...

Global site tag (gtag.js) - Google Analytics