<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 閱讀(513) 評(píng)論(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;
        }
        
        
    }

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


    網(wǎng)站導(dǎo)航:
     

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

    Copyright © yukui

    主站蜘蛛池模板: 亚洲成a人片在线观| 国产精品成人四虎免费视频| 亚洲精品国产精品乱码在线观看| 18禁美女裸体免费网站| 成人在线免费看片| 亚洲AV无码精品蜜桃| 鲁啊鲁在线视频免费播放| 国产黄色片在线免费观看| 精品无码专区亚洲| 亚洲国产成人VA在线观看| 日韩一级片免费观看| 国产亚洲综合网曝门系列| 日本免费A级毛一片| 久久久久久亚洲精品| 日本片免费观看一区二区| 国产精品亚洲美女久久久| GOGOGO免费观看国语| 亚洲精品线在线观看| 久久精品a一国产成人免费网站 | 亚洲AV电影院在线观看| 久久精品免费观看国产| 国产自产拍精品视频免费看| 一级毛片免费毛片毛片| 蜜桃精品免费久久久久影院| 曰批全过程免费视频免费看 | 99热在线免费观看| 亚洲伊人久久精品影院| 国产精品亚洲а∨无码播放不卡| 亚洲熟女乱综合一区二区| 日本免费人成视频在线观看| 亚洲欧好州第一的日产suv| 在线免费观看亚洲| 亚洲1区2区3区精华液| 曰批视频免费30分钟成人| 亚洲αv在线精品糸列| 黄色免费网站网址| 日韩在线视频播放免费视频完整版| 亚洲AV乱码一区二区三区林ゆな | 久久久久久夜精品精品免费啦| 亚洲国产精品自在自线观看| 成人黄色免费网站|