<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dom4j 學(xué)習(xí)

    Posted on 2007-11-07 17:03 yukui 閱讀(510) 評論(0)  編輯  收藏
    zz G_G
    直接看代碼..
    dom4j 的一般使用都在里面了
    /lib/dom4j-1.6.1.jar
    /lib/jaxen-1.1-beta-6.jar
    package useDom4j.test.supper;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.util.Iterator;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;

    import junit.framework.TestCase;

    import org.dom4j.Document;
    import org.dom4j.DocumentFactory;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.QName;
    import org.dom4j.Visitor;
    import org.dom4j.VisitorSupport;
    import org.dom4j.XPath;
    import org.dom4j.io.DOMReader;
    import org.dom4j.io.HTMLWriter;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;


    public class useDom4jTest extends TestCase {

        
    //use all
        private String path ;
        
    private ClassLoader clo;
        
    // file path -> bin 
        private String classPath ;
        
    //use save 
        static private Document doc;
        
    private String filese;

        
    protected void setUp() throws Exception {
            
    super.setUp();
            path 
    = "useDom4j/test/config/test.xml";
            clo 
    = this.getClass().getClassLoader();
            classPath 
    = System.getProperty("java.class.path").split(";")[0]   ;
            filese 
    = System.getProperty("file.separator");
        }

        
    protected void tearDown() throws Exception {
            
    super.tearDown();
        }

        
        
    public void testRead()throws Exception{
            SAXReader sax 
    = new SAXReader();
            
    //File read
            Document docF =  sax.read(
                    
    new File(clo.getResource(path).getFile())
                        );
            assertNotNull(
    "is File saxReader err",docF);
            
            
    //InPutStream read 
            Document docI = sax.read( clo.getResourceAsStream(path) );
            assertNotNull(
    "is InPutStream saxReader err",docI);
            
            
    //URL read 
            Document docU = sax.read( clo.getResource(path) );
            assertNotNull(
    "is Url saxReader err",docU);
            
        }
        
        
    /** converts a W3C DOM document into a dom4j document */
        
    public void testConversion() throws Exception{
              DocumentBuilderFactory domfac
    =DocumentBuilderFactory.newInstance();
              DocumentBuilder dombuilder
    =domfac.newDocumentBuilder();
              InputStream input 
    =  clo.getResourceAsStream(path) ;
              org.w3c.dom.Document doc3c 
    = dombuilder.parse( input );
              DOMReader xmlReader 
    = new DOMReader();
              assertEquals( 
    " Conversion : W3C DOM-> dom4j DOM err",
                      xmlReader.read(doc3c) 
    instanceof Document,true );
          }
          
        
    public void testCreate()throws Exception{
              DocumentFactory factory 
    = DocumentFactory.getInstance();
              doc 
    = factory.createDocument();
            
    //root Create
              Element root = doc.addElement("testElement");
              assertNotNull(
    "is root Create err",root);
              
               Element author2 
    = root.addElement( "author" )
                  .addAttribute( 
    "name""Toby" )
                  .addAttribute( 
    "location""Germany" )
                  .addText( 
    "Tobias Rademacher" );

                Element author1 
    = root.addElement( "author" )
                  .addAttribute( 
    "name""James" )
                  .addAttribute( 
    "location""UK" )
                  .addText( 
    "James Strachan" );
                
                
    //Test Create 
                
    //use XPath ->jaxen-xxx.jar  
                assertEquals("create Element author2 err",
                        doc.selectSingleNode(
    "/testElement/author[@name='Toby']").getText()
                        ,
    "Tobias Rademacher");
                assertEquals(
    "create Element author1 err",
                        doc.selectSingleNode(
    "/testElement/author[@location='UK']/@name").getText()
                        ,
    "James");
        }



         
    public void testPrintingHTML()throws Exception{
               String testSaveXml 
    = "useDom4j/test/config/testHtml.html";
               
               testSaveXml 
    = classPath+filese+testSaveXml;
              
               File file 
    = getFile(testSaveXml);
               
    //Save file.html 
               HTMLWriter writer = new HTMLWriter(new FileOutputStream( file ));
               writer.write(
    new SAXReader().read( clo.getResource(path) ));
               writer.flush();
         }
        
        
    public void testIterator(){
            Element root 
    = this.doc.getRootElement();
            
            
    //Iterator
            Iterator elementIterator = root.elementIterator();
            
    while(elementIterator.hasNext()){
              Element element 
    = (Element)elementIterator.next();
              assertNotNull(
    "not attr name", element.selectSingleNode("./@name") );
              assertNotNull(
    "not attr location", element.selectSingleNode("./@location") );
              assertNotNull(
    "not Text ", element.selectSingleNode(".").getText() );
            }
            
            
    //for -> ./XX
            for ( int i = 0, size = root.nodeCount(); i < size; i++ ) {
                Node node 
    = root.node(i);
                
    if ( node instanceof Element ) {
                  Element element 
    = (Element)node;
                  assertNotNull(
    "not attr name", element.selectSingleNode("./@name") );
                    assertNotNull(
    "not attr location", element.selectSingleNode("./@location") );
                    assertNotNull(
    "not Text ", element.selectSingleNode(".").getText() );
                }
            }
            
            
    //List 
            List elements = root.elements();
            
    int size = elements.size() ;
            
    if ( size > 4 ) {
              elements.subList( 
    34 ).clear();
              assertEquals(
    "List is not clear",size-elements.size()==1,true);
            }

        }
        
        
    /** use test.xml test
             xpath -> /project/organization/
             <organization>
                 <name>MetaStuff Ltd.</name>
                 <url>
    http://sourceforge.net/projects/dom4j</url>
                 <logo>
    http://sourceforge.net/sflogo.php?group_id=16035</logo>
              </organization> 
              
              xpath -> /project/dependencies/dependency[groupId='msv']
                <dependency>
                  <groupId>msv</groupId>
                  <artifactId>xsdlib</artifactId>
                  <version>20030807</version>
                  <url>
    https://msv.dev.java.net/</url>
                </dependency>
        
    */
        
    public void testXpath()throws Exception{
            XPath xpathSelector 
    = DocumentHelper.createXPath("/project/organization/*");
            Document docT 
    = new SAXReader().read( clo.getResourceAsStream(path) );
            List results 
    = xpathSelector.selectNodes(docT);
            
    for ( Iterator iter = results.iterator(); iter.hasNext(); ) {
              Element element 
    = (Element) iter.next();
              
    if(element.getName().equals("name")){
                  assertEquals(
    "name err", element.getText().equals("MetaStuff Ltd."),true);
              }
              
    if(element.getName().equals("url")){
                  assertEquals(
    "url err", element.getText().equals("http://sourceforge.net/projects/dom4j"),true);
              }
              
    if(element.getName().equals("logo")){
                  assertEquals(
    "logo err", element.getText().equals("http://sourceforge.net/sflogo.php?group_id=16035"),true);
              }
            }
            
            
    // select 
            String url = docT.valueOf( "/project/dependencies/dependency[groupId='msv']/url" );
            assertEquals(
    "Url err", url.equals("https://msv.dev.java.net/"),true);
            Number count 
    = docT.numberValueOf( "/project/dependencies/dependency[groupId='msv']/version" );
            assertEquals(
    "Url err", count.intValue()==20030807,true);
            
        }

        
        
    public void testVisitor(){
            Visitor visitor 
    = new VisitorSupport() {
                
    public void visit(Element element) {
                  System.out.println(
                    
    "Entity name: " + element.getName()  + " text :" + element.getText()
                  );
                }
              };

              doc.accept( visitor );
        }

        
    //  element.clone ;  element.createCopy ;   
        public void testInsertElementAt() throws Exception{
            Element root 
    = this.doc.getRootElement();
            Element oldElement 
    = (Element)doc.selectSingleNode("/testElement/author[@name='Toby']");
            Element newElement 
    = (Element) oldElement.clone();
            List list 
    = root.content();
            list.add( root.indexOf(oldElement)
    +1,newElement );

         }
        
        
        
        
         
    public void testSave()throws Exception{
               String testSaveXml 
    = "useDom4j/test/config/testSave.xml";
               
               testSaveXml 
    = classPath+filese+testSaveXml;
              
               File file 
    = getFile(testSaveXml);
               
    //Save file.xml 
               XMLWriter writer = new XMLWriter(new FileOutputStream( file ));
               writer.write(doc);
               writer.flush();
         }

         
         
        
    private File getFile(String testSaveXml) throws IOException {
            File file 
    = null ;
               URL url 
    = clo.getResource(testSaveXml);
               
    if(url==null){
                   file 
    = new File(testSaveXml);
                   file.createNewFile();
               }
    else{
                   file 
    = new File(  url.getFile() );
               }
            
    return file;
        }
        
        
    }

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    posts - 131, comments - 12, trackbacks - 0, articles - 32

    Copyright © yukui

    主站蜘蛛池模板: 极品色天使在线婷婷天堂亚洲| 免费观看无遮挡www的视频| 亚洲an日韩专区在线| 亚洲一区二区视频在线观看| 久久精品国产亚洲av水果派 | 国产免费久久精品| 中文字幕免费视频一| 中文字幕av无码不卡免费| 真人无码作爱免费视频| 国产日本亚洲一区二区三区| 亚洲制服中文字幕第一区| 国产亚洲一区二区三区在线| 免费v片在线观看品善网| 成人影片麻豆国产影片免费观看| 99re6热视频精品免费观看| 免费国产污网站在线观看| 丰满少妇作爱视频免费观看| 特黄aa级毛片免费视频播放| 亚洲狠狠婷婷综合久久| 国产亚洲精品成人AA片| 亚洲午夜电影一区二区三区| 亚洲在成人网在线看| 亚洲色av性色在线观无码| 在线观看亚洲一区二区| 亚洲一二成人精品区| 亚洲av无码成h人动漫无遮挡| 国产精品无码亚洲精品2021| 国产亚洲精品成人AA片| 亚洲综合激情五月色一区| 亚洲日本一线产区和二线产区对比| 亚洲fuli在线观看| 亚洲国产精品一区二区久| 亚洲小说图片视频| 亚洲校园春色小说| 亚洲人成7777| 亚洲自偷自偷在线成人网站传媒| 亚洲日韩国产AV无码无码精品| 亚洲乱色伦图片区小说| 老子影院午夜伦不卡亚洲| 色网站在线免费观看| 久香草视频在线观看免费|