//得到DOM解析器的工廠實(shí)例DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//從DOM工廠中獲得DOM解析器DocumentBuilder builder = factory.newDocumentBuilder();
//通過(guò)DocumentBuilder的parse方法獲得一個(gè)文檔對(duì)象
//Document doc = builder.parse(InputStream);Document doc = builder.parse(".xml");
//得到根節(jié)點(diǎn)Element root = doc.getDocumentElement();
//得到root節(jié)點(diǎn)內(nèi)名稱為student的元素的節(jié)點(diǎn)列表NodeList nodeList = root.getElementsByTagName("student");
//遍歷該集合,從集合中取出信息。。。
//一些常用方法Node node =list.item(i);//取出列表中內(nèi)的一個(gè)節(jié)點(diǎn)node.getNodeType()//獲得節(jié)點(diǎn)類型node.getNodeName()//獲得該節(jié)點(diǎn)名稱node.getFirstChild()//獲得該節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)node.getNodeValue())//獲得該節(jié)點(diǎn)的值node.getAttribute("")//通過(guò)名稱獲得屬性值
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供如皋企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、html5、小程序制作等業(yè)務(wù)。10年已為如皋眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。2、SAX解析http://www.cnblogs.com/felix-hua/archive/2012/01/10/2317404.html
//新建一個(gè)工廠類SAXParserFactorySAXParserFactory factory = SAXParserFactory.newInstance();
//讓工廠類產(chǎn)生一個(gè)SAX的解析類SAXParserSAXParser parser = factory.newSAXParser();
//使用SAXParser的parser方法傳入xml流和自定義的Handeler,解析開(kāi)始parser.parse(is,new MyHandeler);
//自定義Handeler:class MyHandler extends DefaultHandler{
//當(dāng)解析文檔開(kāi)始時(shí)回調(diào)此方法 startDocument()
//當(dāng)解析文檔結(jié)束時(shí)回調(diào)此方法 endDocument()
//當(dāng)解析到一個(gè)元素開(kāi)始時(shí)回調(diào)此方法 startElement(String uri, String localName, String qName,Attributes attributes){
//localName不帶命名空間 qName帶命名空間 attributes.get(String attrID)//獲得名稱為attrID的屬性值
}
//當(dāng)解析到一個(gè)元素結(jié)束時(shí)回調(diào)此方法 endElement(String uri, String localName, String qName)
//當(dāng)解析到元素的內(nèi)容時(shí)回調(diào)此方法 characters(char[] ch, int start, int length)
}
3、Pull解析
//新建一個(gè)XmlPullParserFactory工廠類XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
//新建一個(gè)XmlPullParser解析器XmlPullParser parser=factory.newPullParser();
//使用XmlPullParser的setInput方法設(shè)置要解析的xml流和編碼parser.setInput(XmlPullParser, "utf-8");
int event = parser.getEventType();//產(chǎn)生第一個(gè)事件while(event!=XmlPullParser.END_DOCUMENT){
switch(event){
case XmlPullParser.START_DOCUMENT://判斷當(dāng)前事件是否是文檔開(kāi)始事件 books = new ArrayList();//初始化books集合 break;
case XmlPullParser.START_TAG://判斷當(dāng)前事件是否是標(biāo)簽元素開(kāi)始事件 if("book".equals(parser.getName())){//判斷開(kāi)始標(biāo)簽元素是否是book book = new Book();
book.setId(Integer.parseInt(parser.getAttributeValue(0)));//得到book標(biāo)簽的屬性值,并設(shè)置book的id }
if(book!=null){
if("name".equals(parser.getName())){//判斷開(kāi)始標(biāo)簽元素是否是name book.setName(parser.nextText());
}else if("price".equals(parser.getName())){//判斷開(kāi)始標(biāo)簽元素是否是price book.setPrice(Float.parseFloat(parser.nextText()));
}
}
break;
case XmlPullParser.END_TAG://判斷當(dāng)前事件是否是標(biāo)簽元素結(jié)束事件 if("book".equals(parser.getName())){//判斷結(jié)束標(biāo)簽元素是否是book books.add(book);//將book添加到books集合 book = null;
}
break;
}
event= parser.next();//進(jìn)入下一個(gè)元素并觸發(fā)相應(yīng)事件}
return books;