これは、JavaのXML解析ツールが付属しています

  1  パブリック クラスJaxbUtil {
   2  
  。3      / ** 
  。4       * JavaオブジェクトXMLファイルに
   5       * 
   6       * @param XMLPath XMLファイルパス
   。7       * @paramの負荷のJavaに.Classオブジェクト
   。8       * @returnの文字列XMLファイル
   。9       * @throws 持つJAXBExceptionを
 10       * / 
11      パブリック 静的文字列beanToXml(<?>オブジェクトobj、クラスロード)がスロー持つJAXBException {
 12は          =たJAXBContextコンテキストJAXBContext.newInstance(負荷)に、
13は          マーシャラーマーシャラー= ; context.createMarshaller()
 14          (Marshaller.JAXB_FORMATTED_OUTPUT、marshaller.setProperty falseに);
 15          にStringWriterライター= 新しい新たにStringWriter();
 16          Marshaller.marshal(OBJ、ライター);
 17          リターンwriter.toString();
 18であります     }
 19  
20      / ** 
21である      オブジェクトに* XMLコンフィギュレーションファイル
 22は      * 
 23である      * @paramのXMLPath XMLファイルパス
 24       *の@paramの負荷のJavaオブジェクトに.Class
 25       *@return 对象ジャワ
 26       *は@throws 持つJAXBException
 27       * @throws IOExceptionが
 28       * / 
29      @SuppressWarnings( "未チェック" 30      公共の 静的 <T> T xmlToBean(文字列xmlPath、クラス<T>負荷)がスロー持つJAXBExceptionは、IOException {
 31          たJAXBContextをコンテキスト= JAXBContext.newInstance(負荷)
32          Unmarshallerのアンマーシャラー= context.createUnmarshaller()。
33          リターン(T)unmarshaller.unmarshal(新しいにStringReader(xmlPath))。
34     }
 35  
36      / ** 
37       * JavaBeanのXMLデフォルトエンコーディングに変換する。8 UTF
 38である      * 
 39       * @param OBJ
 40       * @paramのライター
 41れる      * @return 
42である      * / 
43である     パブリック 静的文字列convertToXml(オブジェクトobj){
 44で         返す(convertToXmlをOBJ、 "UTF-8" );
 45      }
 46である 
47      / ** 
48       *はJavaBeanのXMLに変換される
 49       * 
 50       * @param OBJ
 51れます      * @param 符号
 52       * @return 
53       * / 
54      パブリック 静的文字列convertToXml(オブジェクトobj、文字列エンコーディング){
 55          文字列結果= NULL ;
56          試み{
 57              JAXBContextのコンテキスト= JAXBContext.newInstance(obj.getClass())。
58              マーシャラーマーシャラー= context.createMarshaller()。
59              (Marshaller.JAXB_FORMATTED_OUTPUT、marshaller.setProperty )。
60              marshaller.setProperty(Marshaller.JAXB_ENCODING、符号化);
61              // 去掉生成XML的默认报文头   
62               marshaller.setProperty(Marshaller.JAXB_FRAGMENT、)。 
63              にStringWriterライター= 新しいにStringWriter();
64              writer.append( "<?XMLバージョン= \" 1.0 \ "エンコーディング= \ "UTF-8 \"?>" + "\ n" );
65              marshaller.marshal(OBJ、作家);
66              結果= writer.toString()。
67          } キャッチ(例外e){
 68              e.printStackTrace();
69          }
 70          リターン結果。
 72  
73である     / ** 
74       *は部分除去JavaBeanのXML宣言XMLに変換される
 75       * 
 76       * @param OBJ
 77       * @param 符号
 78       * @return 
79       * / 
80      パブリック 静的文字列convertToXmlIgnoreXmlHead(オブジェクトobj、文字列エンコーディング){
 81          文字列結果を= NULL ;
 82          試み{
 83              JAXBContextのコンテキスト= JAXBContext.newInstance(obj.getClass())に、
 84              マーシャラーマーシャラー=context.createMarshaller();
85              (Marshaller.JAXB_FORMATTED_OUTPUT、marshaller.setProperty )。
86              marshaller.setProperty(Marshaller.JAXB_ENCODING、符号化);
87              (Marshaller.JAXB_FRAGMENT、marshaller.setProperty )。
88              にStringWriterライター= 新しいにStringWriter();
89              marshaller.marshal(OBJ、作家);
90              結果= writer.toString()。
91          } キャッチ(例外e){
 92              e.printStackTrace();
93          }
94          リターン結果;
95      }
 96  
97      / ** 
98       * XML转换成JavaBeanの
 99       * 
 100       * @paramのXML
 101       * @param C
 102       * @return 
103       * / 
104      @SuppressWarnings( "未チェック" 105      パブリック 静的 <T> T converyToJavaBean(文字列XML、クラス<T> C){
 106          T T = ヌル107          のtry {
 108              たJAXBContextコンテキスト=JAXBContext.newInstance(C);
109              Unmarshallerのアンマーシャラー= context.createUnmarshaller()。
110              T =(T)unmarshaller.unmarshal(新しいにStringReader(XML))。
111          } キャッチ(例外e){
 112              e.printStackTrace();
113          }
 114          戻りT。
115      }
 116  
117      プライベート 静的OUTPUTFORMAT createPrettyPrint(){
 118          OUTPUTFORMAT形式= 新しいOUTPUTFORMAT()。
119          // format.setIndentSize(2)。
120          format.setNewLineAfterDeclaration(偽の);
 121          format.setNewlines(真の);
 122          (format.setTrimText はfalse );
 123          (format.setPadText はfalse );
 124          返すフォーマット;
 125      }
 126  
127      / ** 
128       * 
 129       * @Title。 formatXml
 130       * @author :humingbo
 131       * @date:2019インディアン7 18午前11時35分08秒
 132       * @description:XMLフォーマット方法
 133       *@paramのSTR
 134       * @return 
135       * @throws 例外
 136       * / 
137      パブリック 静的文字列formatXml(文字列str)がスロー例外{
 138          文書ドキュメント= ヌル139          ドキュメント= DocumentHelper.parseText(STR)。
140          // 格式化输出格式
141          OUTPUTFORMAT形式= createPrettyPrint()。
142          format.setEncoding( "UTF-8" )。
143          にStringWriterライター= 新しいですStringWriter();
 144          // フォーマットされた出力ストリーム
145          するXMLWriterたXmlWriterは= 新しい新しいするXMLWriter(ライター、フォーマット);
 146          // 文書を出力ストリームに書き込まれる
147          xmlWriter.write(ドキュメント);
 148          xmlWriter.close();
 149          復帰writer.toString();
 150      }
 151 }

 

おすすめ

転載: www.cnblogs.com/huzi007/p/11334765.html