主类
package com.test;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.QName;
import org.dom4j.io.SAXReader;
public class TrainUtilsDom4jVisitor {
/**
* dom4j
*
* @param args
* @throws DocumentException
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException,
DocumentException {
// TODO Auto-generated method stub
SAXReader saxreader = new SAXReader();
Document document = saxreader
.read(new URL(
"http://www.twototwo.cn/train/Service.aspx?format=xml&action=QueryTrainScheduleByTwoStation&key=80e12502-f08a-406b-b4c3-a682c2668937&startStation=%e5%8c%97%e4%ba%ac&arriveStation=%e4%b8%8a%e6%b5%b7&startDate=2013-03-15&ignoreStartDate=0&like=1&pageIndex=1&pageSize=2&more=0"));
document.accept(new MyVisitor());
// Element root = document.getRootElement();
}
}
visitor类
package com.test;
import org.dom4j.Attribute;
import org.dom4j.CDATA;
import org.dom4j.Comment;
import org.dom4j.Document;
import org.dom4j.DocumentType;
import org.dom4j.Element;
import org.dom4j.Entity;
import org.dom4j.Namespace;
import org.dom4j.ProcessingInstruction;
import org.dom4j.Text;
import org.dom4j.VisitorSupport;
public class MyVisitor extends VisitorSupport {
@Override
public void visit(Attribute node) {
System.out.println(node.getName()+" : "+ node.getText());
}
@Override
public void visit(CDATA node) {
// TODO Auto-generated method stub
super.visit(node);
}
@Override
public void visit(Comment node) {
// TODO Auto-generated method stub
super.visit(node);
}
@Override
public void visit(Document document) {
// TODO Auto-generated method stub
super.visit(document);
}
@Override
public void visit(DocumentType documentType) {
// TODO Auto-generated method stub
super.visit(documentType);
}
@Override
public void visit(Element node) {
System.out.println(node.getName()+" : "+ node.getText());
}
@Override
public void visit(Entity node) {
// TODO Auto-generated method stub
super.visit(node);
}
@Override
public void visit(Namespace namespace) {
// TODO Auto-generated method stub
super.visit(namespace);
}
@Override
public void visit(ProcessingInstruction node) {
// TODO Auto-generated method stub
super.visit(node);
}
@Override
public void visit(Text node) {
// TODO Auto-generated method stub
super.visit(node);
}
}
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Head>
<ChuFaZhan>
<CheZhanBianHao>3ea57ec8-15ce-4574-b341-8e06e0c747b0</CheZhanBianHao>
<CheZhanBianMa>1051033288</CheZhanBianMa>
<CheZhanMingCheng>北京</CheZhanMingCheng>
</ChuFaZhan>
<DaoDaZhan>
<CheZhanBianHao>b7b95a33-cffd-433f-97d1-7d58c66b2d75</CheZhanBianHao>
<CheZhanBianMa>1212589517</CheZhanBianMa>
<CheZhanMingCheng>上海</CheZhanMingCheng>
</DaoDaZhan>
</Head>
<Main Rows="2">
<Item Id="1">
<CheCiBianHao>9452769f-3de2-4b6d-a962-e0efeb990c9c</CheCiBianHao>
<CheCiBianMa>1806535009</CheCiBianMa>
<CheCiMingCheng>G101</CheCiMingCheng>
<CheXingMingCheng>高速动车</CheXingMingCheng>
<ShiFaZhan>北京南</ShiFaZhan>
<ChuFaZhan>北京南</ChuFaZhan>
<DaoDaZhan>上海虹桥</DaoDaZhan>
<ZhongDianZhan>上海虹桥</ZhongDianZhan>
<FaShi>07:00</FaShi>
<DaoShi>12:23</DaoShi>
<LiShi>05:23</LiShi>
<LiCheng>1318</LiCheng>
<ShangWuZuo>1748</ShangWuZuo>
<TeDengZuo>--</TeDengZuo>
<YiDengZuo>933</YiDengZuo>
<ErDengZuo>553</ErDengZuo>
<GaoJiRuanWoShang>--</GaoJiRuanWoShang>
<GaoJiRuanWoXia>--</GaoJiRuanWoXia>
<RuanWoShang>--</RuanWoShang>
<RuanWoXia>--</RuanWoXia>
<YingWoShang>--</YingWoShang>
<YingWoZhong>--</YingWoZhong>
<YingWoXia>--</YingWoXia>
<RuanZuo>--</RuanZuo>
<YingZuo>--</YingZuo>
</Item>
<Item Id="2">
<CheCiBianHao>7455f9b1-f8d4-4dd1-abac-bf3235704b2a</CheCiBianHao>
<CheCiBianMa>1951791537</CheCiBianMa>
<CheCiMingCheng>G103</CheCiMingCheng>
<CheXingMingCheng>高速动车</CheXingMingCheng>
<ShiFaZhan>北京南</ShiFaZhan>
<ChuFaZhan>北京南</ChuFaZhan>
<DaoDaZhan>上海虹桥</DaoDaZhan>
<ZhongDianZhan>上海虹桥</ZhongDianZhan>
<FaShi>07:05</FaShi>
<DaoShi>12:30</DaoShi>
<LiShi>05:25</LiShi>
<LiCheng>1318</LiCheng>
<ShangWuZuo>1748</ShangWuZuo>
<TeDengZuo>1053</TeDengZuo>
<YiDengZuo>933</YiDengZuo>
<ErDengZuo>553</ErDengZuo>
<GaoJiRuanWoShang>--</GaoJiRuanWoShang>
<GaoJiRuanWoXia>--</GaoJiRuanWoXia>
<RuanWoShang>--</RuanWoShang>
<RuanWoXia>--</RuanWoXia>
<YingWoShang>--</YingWoShang>
<YingWoZhong>--</YingWoZhong>
<YingWoXia>--</YingWoXia>
<RuanZuo>--</RuanZuo>
<YingZuo>--</YingZuo>
</Item>
</Main>
<Page>
<PageIndex>1</PageIndex>
<PageSize>2</PageSize>
<TotalRecord>56</TotalRecord>
<TotalPage>28</TotalPage>
</Page>
<Foot>
<Time>24.05</Time>
<Site>http://www.twototwo.cn</Site>
<Json>{"format":"xml","action":"QueryTrainScheduleByTwoStation","key":"80e12502-f08a-406b-b4c3-a682c2668937","startStation":"%e5%8c%97%e4%ba%ac","arriveStation":"%e4%b8%8a%e6%b5%b7","startDate":"2013-03-15","ignoreStartDate":"0","like":"1","pageIndex":"1","pageSize":"2","more":"0"}
</Json>
<Info>{"format":"xml","action":"QueryTrainScheduleByTwoStation","key":"80e12502-f08a-406b-b4c3-a682c2668937","startStation":"北京","arriveStation":"上海","startDate":"2013-03-15","ignoreStartDate":"0","like":"1","pageIndex":"1","pageSize":"2","more":"0"}
</Info>
</Foot>
</Response>