JAXB向Xml非根節(jié)點添加一個或多個屬性

          JAXB 向Xml非根節(jié)點添加一個或多個屬性,直接上代碼,關(guān)于JAXB的相關(guān)注解可查閱JAVA API。

          原創(chuàng)文章,轉(zhuǎn)載請注明出處。http://www.aygfsteel.com/kangdy/archive/2011/11/23/364635.html

          code1: colors類  根節(jié)點
          code1
          package com.kangdy.test;

          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlElement;
          import javax.xml.bind.annotation.XmlRootElement;

          @XmlRootElement(name = "Colors")
          @XmlAccessorType(XmlAccessType.FIELD)
          public class Colors {
              
              @XmlElement(name = "red",nillable=true)
              private Red red;
              
              @XmlElement(name = "blue",nillable=true)
              private Blue blue;

              public Red getRed() {
                  return red;
              }

              public Blue getBlue() {
                  return blue;
              }

              public void setRed(Red red) {
                  this.red = red;
              }

              public void setBlue(Blue blue) {
                  this.blue = blue;
              }
          }

          code2:  Red類  子節(jié)點
          code2package com.kangdy.test;

          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlAttribute;
          import javax.xml.bind.annotation.XmlRootElement;

          @XmlRootElement(name = "red")
          @XmlAccessorType(XmlAccessType.FIELD)
          public class Red {
              
              private String value;
              
              @XmlAttribute(name = "att1")
              private String att;
              
              public String getValue() {
                  return value;
              }
              
              public void setValue(String value) {
                  this.value = value;
              }

              public String getAtt() {
                  return att;
              }

              public void setAtt(String att) {
                  this.att = att;
              }
              
          }


          code3:  類 Blue 子節(jié)點
          code3
          package com.kangdy.test;

          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlAttribute;
          import javax.xml.bind.annotation.XmlRootElement;

          @XmlRootElement(name = "blue")
          @XmlAccessorType(XmlAccessType.FIELD)
          public class Blue {
              private String value;
              
              @XmlAttribute(name = "att2")
              private String att2;
              
              @XmlAttribute(name = "att1")
              private String att;
              
              public String getAtt() {
                  return att;
              }

              public void setAtt(String att) {
                  this.att = att;
              }

              public String getValue() {
                  return value;
              }

              public void setValue(String value) {
                  this.value = value;
              }

              public String getAtt2() {
                  return att2;
              }

              public void setAtt2(String att2) {
                  this.att2 = att2;
              }
          }

          code4: main類
          code4
          package com.kangdy.test;

          import java.io.StringWriter;

          import javax.xml.bind.JAXBContext;
          import javax.xml.bind.Marshaller;

          public class Jaxbtest {
              public static void main(String[] args) throws Exception {

                  StringWriter writer = new StringWriter();
                  JAXBContext jc = JAXBContext.newInstance(Colors.class);
                  Marshaller ma = jc.createMarshaller();
                  ma.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                  
                  Colors colors = new Colors();
                  Red red = new Red();
                  red.setAtt("att-red");
                  red.setValue("red");
                  Blue blue = new Blue();
                  blue.setValue("blue");
                  blue.setAtt("att-blue");
                  blue.setAtt2("blue-att2");
                  colors.setRed(red);
                  colors.setBlue(blue);
                  
                  ma.marshal(colors, writer);
                  System.out.println(writer.toString());

              }
          }

          運行結(jié)果:
          結(jié)果
          <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
          <Colors>
              <red att1="att-red">
                  <value>red</value>
              </red>
              <blue att1="att-blue" att2="blue-att2">
                  <value>blue</value>
              </blue>
          </Colors>

          posted on 2011-11-23 14:33 AK47 閱讀(10143) 評論(4)  編輯  收藏 所屬分類: java相關(guān)

          評論

          # re: JAXB向Xml非根節(jié)點添加一個或多個屬性[未登錄] 2014-01-14 10:08 lili

          1234  回復(fù)  更多評論   

          # re: JAXB向Xml非根節(jié)點添加一個或多個屬性 2014-08-06 11:22 TTBear

          請問一下想<error code="01">dsds</error>這種格式的怎么取出屬性code  回復(fù)  更多評論   

          # re: JAXB向Xml非根節(jié)點添加一個或多個屬性 2016-05-20 15:40 @jason

          那怎么給根節(jié)點增加屬性呢?  回復(fù)  更多評論   

          # re: JAXB向Xml非根節(jié)點添加一個或多個屬性 2016-08-09 15:00 12

          12  回復(fù)  更多評論   

          <2016年5月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安塞县| 龙泉市| 谷城县| 凤庆县| 栾城县| 邢台市| 兴化市| 宜都市| 时尚| 建平县| 德江县| 安义县| 丁青县| 孟连| 榆树市| 枣阳市| 城口县| 马边| 清苑县| 日照市| 淄博市| 安远县| 泗洪县| 沂南县| 进贤县| 兰西县| 唐海县| 庄河市| 楚雄市| 龙岩市| 临夏县| 双牌县| 杭锦后旗| 嘉义县| 石城县| 靖远县| 徐闻县| 宜川县| 杭州市| 蒙阴县| 衡阳县|