DOM 4 J-(XML解析パッケージ)

13713 ワード

DOM 4 J-概要
dom 4 jです.org出品のオープンソースXML解析パッケージです.Dom 4 jは、XML、XPath、XSLTに使用される使いやすいオープンソースのライブラリです.Javaプラットフォームに適用され、Java集合フレームワークを採用し、DOM、SAX、JAXPを完全にサポートしています.
DOM 4 Jはとても使いやすいです.基本的なXML-DOMモデルを知っていれば、使えます.
Dom:ドキュメント全体をオブジェクトとして使用します.
[ DOM4J - jar    | JAXEN( XPath   )]

DOM 4 Jインタフェース定義
主なインタフェースはorgですdom 4 jで定義
Attribute
XML属性が定義されています
Branch
サブノードのみを含むことができるノード.XML要素(Element)やドキュメント(Document)など、共通の動作を定義します.
CDATA
XML CDATA領域の定義
CharacterData
は、文字ベースのノードを識別する識別インタフェースです.例えばCDATA,Comment,Text
Comment
XMLコメントの動作を定義
Document
XMLドキュメントの定義
DocumentType
XML DOCTYPE宣言の定義
Element
XML要素の定義
ElementHandler
Elementオブジェクトを定義したプロセッサ
ElementPath
現在処理中のパス階層情報を取得するためにElementHandlerによって使用される
Entity
XML entityの定義
Node
dom 4 j内のすべてのXMLノードのマルチステート動作を定義します.
NodeFilter
dom 4 jノードで生成されるフィルタまたは述語の動作(predicate)を定義します.
ProcessingInstruction
XML処理命令の定義
Text
XMLテキストノードの定義
Visitor
Visitorモードの実装
XPath
文字列を解析するとXPath式が表示されます
インタフェース間の継承関係は次のとおりです.
● interface java.lang.Cloneable
● interface org.dom4j.Node
● interface org.dom4j.Attribute
● interface org.dom4j.
● interface org.dom4j.Document
● interface org.dom4j.Element
● interface org.dom4j.CharacterData
● interface org.dom4j.CDATA
● interface org.dom4j.Comment
● interface org.dom4j.Text
● interface org.dom4j.DocumentType
● interface org.dom4j.Entity
● interface org.dom4j.ProcessingInstruction
基本的な使用方法:
//   XML  :  ASXReader  reader  xml  ,  Document  :
SAXReader reader = new SAXReader();
Document document = reader.read("xml    ");

//         
Element root = document.getRootElement(); 

//            
Element son_element = element.element("name");

//           
List elelist = element.elements();//        
List son_elelist = element.elements(“name”);//           

//         
element.attributeValue("name");

//       
element.getText();

Element:XML要素の定義
//        
Iterator elementIterator();// Iterator elementIterator("name");//

Attribute:XMLのプロパティが定義されています
getName();//      
setName();//
getValue();//
setValue();//
getDocument();
setDocument();

DOM 4 J-XMLドキュメントアクション
XMLファイルの読み込み:XMLドキュメントの読み書きは主にorgに依存する.dom4j.ioパッケージは、DOMReaderとSAXReaderの2つの方法があります.同じインタフェースが利用されているため、呼び出し方法は同じです.
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
 1         //   XML  ,  document  
 2         SAXReader reader = new SAXReader();
 3         Document doucument = reader.read("src/NewFile.xml");
 4         //      
 5         Element root = doucument.getRootElement();
 6         // System.out.println(e.getName());//       
 7 
 8         //   xml  ,elementIterator()          Element         
 9         for (Iterator it = root.elementIterator(); it.hasNext();) {
10 
11             Element ele = it.next();
12             System.out.println(ele.getName());
13             if (ele.getName().equals("good")) {
14                 Element name = ele.element("name");
15                 if (name != null)
16                     System.out.println(" -" + name.getText());
17             }
18             // Attribute    ,     
19             for (Iterator i = ele.attributeIterator(); i.hasNext();) {
20                 Attribute a = i.next();
21                 System.out.println("  " + a.getName() + ":" + a.getText());
22 
23             }
24         }

XMLファイルの作成:DocumentHelperを使用して新しいdocumentを作成し、documentの下にroot要素を追加し、root要素の下にさまざまなノードを作成できます.
Document document = DocumentHelper.createDocument();
Element root = document.addElement("members");//ルートノードの作成
 1         //   document  ,    xml  
 2         Document newDocument = DocumentHelper.createDocument();
 3         //      
 4         Element newRoot = newDocument.addElement("root");
 5         newRoot.addComment("This is a test for dom4j ");//       
 6         //     authro1  
 7         Element authro1 = newRoot.addElement("authro");
 8           //       
 9           authro1.addAttribute("name", "James");
10           authro1.addAttribute("location", "UK");
11           //       
12           authro1.addText("James Strachan");
13         //     authro2  
14         Element authro1 = newRoot.addElement("authro");
15           //       
16           authro1.addAttribute("name", "James");
17           authro1.addAttribute("location", "UK");
18           //       
19           authro1.addText("James Strachan");
20         try {
21             XMLWriter writer = new XMLWriter(new FileOutputStream("[  /]filename"));
22             //  Document    xml   
23             writer.write(newDocument);
24         } catch (Exception e) {
25             e.printStackTrace();
26         } finally {
27             writer.close();//    
28         }

出力Documentをフォーマットし、OutputFormat付きXML Writerを作成することでDocumentのフォーマット出力を実現
 1         //   
 2         OutputFormat format = OutputFormat.createPrettyPrint();
 3         XMLWriter writer = new XMLWriter(new FileWriter("[path]filename"), format);
 4         writer.write(document);//  Document    xml   
 5         writer.close();//    
 6         //   
 7         OutputFormat format = OutputFormat.createCompactFormat();
 8         XMLWriter writer = new XMLWriter(new FileWriter("[path]filename"), format);
 9         writer.write(document);//  Document    xml   
10         writer.close();//    

XMLファイルの中国語の文字化けしの問題を書き込みます:http://blog.sina.com.cn/s/blog_757b0e130101dqrx.html

DocumentからStringへ
String xmlText = document.asXML();