1. dom4jの解決ファイル
Xml3パッケージ; インポートはjava.io.File; インポートするjava.util.Iterator; インポートorg.dom4j.Attribute; インポートorg.dom4j.Document; インポートorg.dom4j.DocumentException; インポートorg.dom4j.Element; インポートorg.dom4j。 io.SAXReader; / * *方法readDocumentByIterator()分析法xmlファイルの提供 (各要素によって*のてElementIteratorを)しててAttributeIterator取得 *イテレータそのサブ要素と属性 * / publicクラスDom4jTest2 { プライベートファイルのファイルを、 公共Dom4jTest2 (ファイルファイル){ this.file =ファイル; } パブリック静的無効メイン(文字列[] args){ Dom4jTest2新しい新しいDom4jTest2テスト=( 新しい新ファイル( "SRC / COM / briup / XML / chap02 / student.xml")); test.readDocumentByIterator(); //将XML转换成文字列类型 SAXReaderリーダー=新しいSAXReader(); 試す{ 文書ドキュメント= reader.read (新しいファイル( "SRC / COM / briup / XML / chap02 / student.xml")); ストリングdocXmlText = document.asXML()。 System.out.println(docXmlText)。 System.out.println( "------------- docXmlText ----------"); 素子ルート= document.getRootElement()。 ストリングrootXmlText = root.asXML()。 System.out.println(rootXmlText)。 System.out.println( "------------- rootXmlText ----------"); 要素の息子= root.element( "学生"); ストリングsonXmlText = son.asXML()。 System.out.println(sonXmlText)。 System.out.println( "------------- sonXmlText -----------"); }キャッチ(例外e){ E。 } } 公共のgetDocumentドキュメント(){ SAXReader新しい新しいSAXReaderリーダー=(); 文書ドキュメント= NULL; 試み{ ドキュメントreader.Readは=(ファイル); }キャッチ(DocumentException E){ e.printStackTrace(); } 戻りドキュメント; } / * *このメソッドの2つだけ列挙し、読み出しが要求された場合、反復ループ * / 公共ボイドreadDocumentByIterator(){ 要素のgetDocumentルート=()getRootElement();. //ルートノードのすべての子ノード列挙する (イテレータすなわち= root.elementIterator()のために 、ie.hasNextを() ;){ System.out.printlnは( "========"); エレメントエレメント=(要素)ie.next(); System.out.println(element.getName()); //列挙プロパティ {(; ia.hasNext()IA = element.attributeIteratorイテレータ())のための 属性属性=(属性)ia.next(); System.out.println(Attribute.getName() + "=" + attribute.getValue()); } //現在のノードのすべての子ノード列挙する (イテレータieson = element.elementIterator()のために 、ieson.hasNext() ;){ 要素ソン=(要素)ieson.next(); のSystem.out.println(son.getName() + "=" + son.getText()); } } } }
1.2 XMLファイルを作成します
パッケージXml3; インポートのjava.io.File; 輸入java.io.FileNotFoundException。 輸入java.io.FileOutputStreamは、 インポートにjava.io.OutputStream; 輸入java.io.OutputStreamWriterが、 輸入org.dom4j.Document。 輸入org.dom4j.DocumentException。 輸入org.dom4j.DocumentHelper; 輸入org.dom4j.Element。 輸入org.dom4j.io.OutputFormat。 輸入org.dom4j.io.XMLWriter。 パブリッククラスDom4jTest { パブリック静的無効メイン(文字列[] args){ Dom4jTestテスト=新しいDom4jTest()。 文書DOC = test.generateDocument2()。 ファイルファイル=新しいファイル( "SRC / COM / briup / XML / chap02 / student.xml"); test.saveDocument(ドキュメント、ファイル); } 空SaveDocument関数パブリック(文書DOC、ファイルのファイル){ //美化形式 OUTPUTFORMAT = OutputFormat.createPrettyPrint形式(); format.setEncoding(「UTF-8」); 試み{ //出力文字ストリームxmlファイルに応じて、ファイルを指定されています たFileOutputStream新しい新しいOS =のOutputStream(ファイル) のOutputStreamWriterのOutputStreamWriter新しい新しいOSW =(OS) するXMLWriterするXMLWriterライター=新しい新しい(OSW、フォーマット); //出力XML形式に応じて、文書の内容に応じ writer.Write(DOC); writer.flush() ; }キャッチ(例外E){ e.printStackTrace(); } } / * * <学生> * <学生ID =」1' > * <名前> ... </名前> * ... * < /学生> 文書を返します。 } パブリックドキュメントgenerateDocument2(){ 文字列str = "<xmlのバージョン= '1.0'エンコード= 'UTF-8'?>" + "<学生> <! -これは一般的です- >" +「<学生ID = '2'>」 + "<名前>ジャック</名前> <年齢> 20 </年齢>" + "</学生> </学生>"; 文書ドキュメント= NULL; 試す{ 文書= DocumentHelper.parseText(STR)。 }キャッチ(DocumentException電子){ e.printStackTrace(); } 文書を返します。 } }