使用SAX解析和DOM解析的实例 收藏
<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "/r/n/n本文来自优快云博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } </script>
DOM解析
- private static void dom() throws ParserConfigurationException, SAXException, IOException {
- //创建dom工厂
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- //创建dom解析器
- DocumentBuilder db = dbf.newDocumentBuilder();
- //将XML文档解析到内存中
- Document doc = db.parse( "bac.xml" );
- NodeList list = doc.getElementsByTagName( "student" );
- for ( int i = 0 ; i < list.getLength(); i++) { //循环遍历元素节点
- Node node = list.item(i);
- NamedNodeMap attrMap = node.getAttributes(); //获取属性集合
- Node attrNode = attrMap.getNamedItem( "name" ); //name元素节点
- String name = attrNode.getNodeValue(); //获得姓名
- attrNode = attrMap.getNamedItem( "age" ); //age元素节点
- int age = Integer.parseInt(attrNode.getNodeValue()); //获得年龄
- }
- }
SAX解析
- import javax.xml.parsers.SAXParser;
- import javax.xml.parsers.SAXParserFactory;
- import org.xml.sax.Attributes;
- import org.xml.sax.SAXException;
- import org.xml.sax.helpers.DefaultHandler;
- public class SaxHandleDemo extends DefaultHandler {
- boolean flag = false ;
- String currNode = "" ;
- @Override
- // 字符的打印
- public void characters( char [] ch, int start, int length)
- throws SAXException {
- if (flag) {
- String s = new String(ch, start, length);
- System.out.println(s);
- flag = false ;
- }
- }
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- if (qName.equals( "name" )) {
- flag = true ;
- }
- }
- public static void main(String[] args) throws Exception {
- // 创建工厂类
- SAXParserFactory factory = SAXParserFactory.newInstance();
- // 创建SAX解析器,SAXParser包装 XMLReader 实现类的 API
- SAXParser sp = factory.newSAXParser();
- // 解析xml,并在参数中传入事件处理类对象。
- sp.parse( "name.xml" , new SaxHandleDemo());
- }
- }