`
chimpp55
  • 浏览: 21865 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jaxb解析xml 实例2

 
阅读更多
[size=xx-small]
通过jaxb方式把xml文件映射成bean对象。

1、新建java工程或者web工程都可以。
2、通过精简必须导入jar包
         activation.jar
        jaxb-api-2.0.jar
        jaxb-impl-2.0.1.jar
        jsr173_api-1.0.jar
3、 新建xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    <root>

<template
   start="true"
   ip="127.0.0.1"
   port="3344"
   server="server"
/>
<template ... ... />
    </root>

4、新建bean对象,xml的映射文件。
Vo.java 如下
  
Java代码  收藏代码

    import javax.xml.bind.annotation.XmlAccessType;  
    import javax.xml.bind.annotation.XmlAccessorType;  
    import javax.xml.bind.annotation.XmlAttribute;  
    import javax.xml.bind.annotation.XmlRootElement;  
    import javax.xml.bind.annotation.XmlType;  
      
    @XmlAccessorType(XmlAccessType.FIELD)  
    @XmlType(name = "", propOrder = {  
    })  
    @XmlRootElement(name = "[color=red]template[/color]")  
    public class Vo {  
      
        @XmlAttribute  
        private String start;  
        @XmlAttribute  
        private String ip;  
        @XmlAttribute  
        private String port;  
        @XmlAttribute  
        private String server;  
          
          
        public String getStart() {  
            return start;  
        }  
        public void setStart(String start) {  
            this.start = start;  
        }  
        public String getIp() {  
            return ip;  
        }  
        public void setIp(String ip) {  
            this.ip = ip;  
        }  
        public String getPort() {  
            return port;  
        }  
        public void setPort(String port) {  
            this.port = port;  
        }  
        public String getServer() {  
            return server;  
        }  
        public void setServer(String server) {  
            this.server = server;  
        }  
    }  
         


该文件对应xml文件中 循环节点 template 元素

Root.java 文件如下
Java代码  收藏代码

    import java.util.ArrayList;  
    import java.util.List;  
      
    import javax.xml.bind.annotation.XmlAccessType;  
    import javax.xml.bind.annotation.XmlAccessorType;  
    import javax.xml.bind.annotation.XmlRootElement;  
    import javax.xml.bind.annotation.XmlType;  
      
    @XmlAccessorType(XmlAccessType.FIELD)  
    @XmlType(name = "", propOrder = {  
    })  
    @XmlRootElement(name = "[color=blue]root[/color]")  
    public class Root {  
          
        protected List<Vo> [color=red]template[/color];  
          
        public List<Vo> getTemplateList() {  
            if (template == null) {  
                template = new ArrayList<Vo>();  
            }  
            return this.template;  
        }  
    }  



注意bean对象与xml映射的关系。

5、 解析xml为bean类
Java代码  收藏代码

    public static void gernateConfig() throws Exception{  
            StringBuffer buffer  = null;  
            JAXBContext jaxbContext;  
            try {  
                               //读入xml文件流  
                               InputStream is = Excecute.class.getResourceAsStream(“/conf/config.xml”);  
                BufferedReader in = new BufferedReader(new InputStreamReader(is));  
                buffer = new StringBuffer();  
                String line = "";  
                while ((line = in.readLine()) != null) {  
                    buffer.append(line);  
                }  
                  
                //加载映射bean类  
                jaxbContext = JAXBContext.newInstance(Root.class);  
                               //创建解析  
                Unmarshaller um = jaxbContext.createUnmarshaller();  
                StreamSource streamSource = new StreamSource(new StringReader(buffer.toString()));  
                Root root = (Root) um.unmarshal(streamSource);   
            } catch (Exception e) {  
                e.printStackTrace();  
                throw new Exception(e.getMessage());  
            }  
        }  



6、 把bean对象生成xml字符串方法
Java代码  收藏代码

    public static String gernateConfigXml(Root root) throws Exception {  
            if (root != null) {  
                try {  
                    JAXBContext context = JAXBContext.newInstance(Root.class);  
                    Marshaller m = context.createMarshaller();  
                    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  
                    Writer writer = new StringWriter();  
                    m.marshal(root, writer);  
                    try {  
                        String xml = writer.toString();  
                        writer.flush();  
                        writer.close();  
                        return xml;  
                    } catch (IOException e) {  
                        return "";  
                    }  
                } catch (Exception e) {  
                    throw new Exception("失败!");  
                }  
            } else {  
                return null;  
            }  
        }  
[/size]
分享到:
评论

相关推荐

    jaxb解析xml为对象例子

    **标题:“JAXB解析XML为对象例子”** 在Java开发中,XML作为一种常见的数据交换格式,经常被用于存储和传输数据。Java Architecture for XML Binding(JAXB)是Java平台的标准API,它允许开发者将Java对象绑定到...

    jaxb解析xml

    JAXB 解析 XML JAXB (Java Architecture for XML Binding) 是一种基于 Java 的 XML 绑定技术,主要功能是根据 DTD 或者 XML Schema 将 XML Element 转化为 Java 类。JAXB 将 XML 文本流转化为 Java Object,把 XML ...

    stax+jaxb进行xml解析

    - 创建XMLInputFactory实例,这是解析XML的起点。 - 使用XMLInputFactory创建XMLStreamReader,这是读取XML事件的对象。 - 通过XMLStreamReader逐个处理事件,如StartElement、EndElement、Characters等。 - 在...

    利用JAXB进行xml和javabean之间转换

    通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发效率和代码的可维护性。这篇博客将深入探讨如何利用JAXB进行xml和javabean之间的转换。 首先,我们需要了解JAXB的基本工作原理。JAXB通过元...

    JAXB与xml相互转换实例

    - **性能优化**:由于是编译时绑定,JAXB转换过程通常比运行时解析XML快。 - **易于维护**:当XML Schema更改时,只需要重新生成Java类,无需修改大量代码。 然而,JAXB也有一些局限性,例如不支持某些复杂的XML...

    SAX解析XML实例

    本篇我们将深入探讨SAX(Simple API for XML)解析XML的实例。 SAX,全称为Simple API for XML,是一种基于事件驱动的解析方式。与DOM(Document Object Model)解析器不同,SAX并不将整个XML文档加载到内存中形成...

    jaxb (XML操作)

    2. **实例化(Unmarshalling)**:当需要将XML数据转换为Java对象时,JAXB使用Unmarshaller接口解析XML文档,生成对应的Java对象。这个过程是将XML数据"反序列化"为可操作的Java对象。 3. **序列化(Marshalling)*...

    利用jaxb实现xml和bean互转

    5. **Unmarshalling**: 使用`Unmarshaller`对象将XML字符串或文件解析回Java Bean实例。 6. **绑定文件(bindings file)**: 如果默认的注解不满足需求,可以创建一个绑定文件来更精细地控制XML到Java的映射。 **...

    idea 中用jaxb 读xml中数据

    4. **解析XML到Java对象**:使用Unmarshaller对象的`unmarshal`方法,我们可以将XML文件解析为Java对象。 ```java Person person = (Person) unmarshaller.unmarshal(file); ``` 5. **处理解析后的数据**:现在,...

    jaxb xml 转map

    然后,JAXB会使用这些类来解析XML并生成相应的对象实例。对于简单的XML,这通常很有效。但是,对于复杂的XML结构,转换为Map可能更为合适。 转换XML到Map的过程通常包括以下步骤: 1. 创建一个XML解析器:使用`...

    android异步下载图片实例/解析xml实例

    在描述的实例中,可能是通过HTTP请求获取豆瓣电影的XML数据,然后使用上述解析器之一来解析XML,获取电影信息。 三、豆瓣电影API 豆瓣电影API提供了一种方式来获取电影相关的数据,如电影介绍、评分、评论等。通常...

    JAXB完成XML和Java对象的互转

    该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    3. 解析XML:有了Java类,我们就可以使用JAXB提供的`Unmarshaller`接口将XML文档解析成Java对象。以下是一个简单的示例: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Unmarshaller ...

    jaxb XMl和BEAN互转实例(内含jar包)

    3. **解析XML到BEAN**:最后,使用Unmarshaller的`unmarshal`方法将XML文档解析为BEAN对象。 ```java Person person = (Person) unmarshaller.unmarshal(new File("person.xml")); ``` 相反,从BEAN到XML的转换...

    JAXB-XML注解-应用

    该过程中,JAXB 也提供了将 XML 实例文档反向生成 Java 对象树的方法,并能将 Java 对象树的内容重新写到 XML 实例文档。JAXB 中包含“xjc”工具和一个“schemagen”工具。“xjc”工具可以用来将 XML 模式或其他类型...

    JSP基于dom解析xml实例详解.docx

    本实例主要讲解如何在JSP中利用DOM解析XML文件,包括XML文件的读取、数据匹配以及数据写入。 首先,我们需要创建一个简单的User实体类,如`User`,包含姓名(name)、密码(pwd)和电子邮件(email)属性及相应的...

    java 解析xml 多级

    总结来说,Java提供了多种解析XML的方法,包括DOM、SAX和JAXB等。对于处理多级嵌套的XML,DOM和JAXB在操作上更为便捷,而SAX则适用于处理大规模文件。在具体选择时,应根据项目需求和资源限制进行权衡。

    jaxb资料及实例,里面还包含了其他资料地址3

    描述中的“jaxb资料及实例,里面还包含了其他资料地址2”进一步确认了压缩包内容不仅限于JAXB,可能还包含了与之相关的其他开发资料或教程链接,可能是关于XML处理、Web服务、数据交换等方面的知识。 在“testJaxb...

    Android支持JAXB(Java Architecture for XML Binding)

    Android支持JAXB(Java Architecture for XML Binding) ...使用JAXB在Android平台上解析XML文件需要注意一些特殊的问题和解决方法,通过正确的配置和编码,我们可以成功地使用JAXB来解析XML文件。

Global site tag (gtag.js) - Google Analytics