jsoup与dom4j

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${url}" />
    <property name="driverClass" value="${driver}" />
<property name="user" value="${username}" />
  <property name="password" value="${password}" />
<property name="minPoolSize" value="5" />
</bean>



许多配置文件都是.xml结尾的,比如说上面的最常见spring.xml文件,要想解析这个文件,找到需要的节点上的属性的值,就要使用dom4j的SAXReader类


在dom4j包下有一个专门解析xml文件的类SAXReader

解析过程:
//要解析的xml文件的地址
File file = new File("F:\\workspase\\JsoupParse\\src\\spring.xml");
//创建解析工具
SAXReader reader = new SAXReader();
//读取xml文件,并返回一个document对象
Document document =reader.read(file);
//得到document文档的根元素
Element root=document.getRootElement();
//获取根元素root上的package的元素
Element pa=root.element("bean");
//获取这个元素的name属性值
System.out.println(pa.attributeValue("class"));
//从root根元素这个位置开始循环遍历
List<Element> eles=root.elements();



jsoup
jsoup和xpath都可以解析这种结构式文件,jsoup比xpath解析起来更加灵活,jsoup是用的jquery那一套语法,语法清晰易懂。下面是我的测试程序,一看就明白.
    package com.testjsoup;     
    import java.io.File;       
    import org.jsoup.Jsoup; 
    import org.jsoup.nodes.Document; 
    import org.jsoup.nodes.Element; 
    import org.jsoup.select.Elements;      
    public class JsoupTest {         
        public static void main(String[] args) throws Exception{                
            Document d=Jsoup.parse(new File("spring.xml"),"UTF-8");//必须使用这种方式解析 
            Element content = doc.getElementById("dataSource");//根据id查找
            Elements links = content.getElementsByTag("bean ");//根据标签查找
            for(Element el:d.select("bean")){ 
                System.out.println("属性:"+el.select("property").text())
              
            }              
        } 
     
    } 
jsoup最大的威力其实不是解析.xml文件,而是爬取.html中的符合业务需求的信息。一般用在lucene或者solr项目当中。


猜你喜欢

转载自jianhao-wang.iteye.com/blog/2078995