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 }