• 大小: 42KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: xml  sax  java  

资源简介

学习xml——sax解析的项目小示例 非常简单易懂 而且包括多种sax解析的方法 如xmlReader,saxBuilder工厂,还包括一个dom解析的示例(DocumentBuilder工厂)

资源截图

代码片段和文件信息

package dom;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
 
/**
 * @description DOM解析
 * 
 * @author liuquan
 * @date  2015年12月14日
 */
public class Dom {  
public Listject>> getBooks(String uri) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(uri);
Element root = document.getDocumentElement();
NodeList nodes = root.getElementsByTagName(“book“); 
Listject>> list = new ArrayListject>>();
//books结点的book字段
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
NodeList childList = node.getChildNodes();
//book结点中的name和price字段
for (int j = 0; j < childList.getLength(); j++){ 
Mapject> tmpMap = new HashMapject>();
Node tmpNode = childList.item(j); 
if(!“#text“.equals(tmpNode.getNodeName())){
String key = tmpNode.getNodeName();
String value = tmpNode.getFirstChild().getNodeValue(); 
tmpMap.put(key value);
list.add(tmpMap);
}
}

return list;
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return null;
}

public static void main(String[] args) {
Dom dom = new Dom(); 
Listject>> domResult = dom.getBooks(“book.xml“);
if (domResult != null && domResult.size() > 0) {
System.out.println(“DOM:“ + domResult.toString()); 
} else {
System.out.println(“DOM:“ + “domResult is null!“);
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        357  2015-12-14 14:37  xml\.classpath

     文件        379  2015-12-11 10:17  xml\.project

     文件        598  2015-12-11 10:17  xml\.settings\org.eclipse.jdt.core.prefs

     文件       3548  2015-12-14 14:37  xml\bin\dom\Dom.class

     文件       4558  2015-12-14 14:37  xml\bin\sax\MyContentHandler.class

     文件       1305  2015-12-14 14:37  xml\bin\sax\MyDTDHandler.class

     文件        598  2015-12-14 14:37  xml\bin\sax\MyEntityResolver.class

     文件       1349  2015-12-14 14:37  xml\bin\sax\MyErrorHandler.class

     文件       1712  2015-12-14 14:37  xml\bin\sax\Test.class

     文件       4552  2015-12-14 14:37  xml\bin\sax2\FindBook.class

     文件       2419  2015-12-14 14:37  xml\bin\sax3\MyContentHandler.class

     文件        446  2015-12-11 16:21  xml\book.xml

     文件      27836  2015-12-11 10:54  xml\lib\sax-2.0.1.jar

     文件       2190  2015-12-14 14:24  xml\src\dom\Dom.java

     文件       7350  2015-12-11 14:07  xml\src\sax\MyContentHandler.java

     文件       1557  2015-12-11 15:18  xml\src\sax\MyDTDHandler.java

     文件       1051  2015-12-11 15:34  xml\src\sax\MyEntityResolver.java

     文件       1399  2015-12-11 11:37  xml\src\sax\MyErrorHandler.java

     文件       2089  2015-12-11 13:56  xml\src\sax\Test.java

     文件       4037  2015-12-11 16:43  xml\src\sax2\FindBook.java

     文件       2070  2015-12-14 09:59  xml\src\sax3\MyContentHandler.java

     目录          0  2015-12-14 14:37  xml\bin\dom

     目录          0  2015-12-14 14:37  xml\bin\sax

     目录          0  2015-12-14 14:37  xml\bin\sax2

     目录          0  2015-12-14 14:37  xml\bin\sax3

     目录          0  2015-12-14 14:23  xml\src\dom

     目录          0  2015-12-11 15:38  xml\src\sax

     目录          0  2015-12-11 17:43  xml\src\sax2

     目录          0  2015-12-14 09:56  xml\src\sax3

     目录          0  2015-12-11 10:17  xml\.settings

............此处省略7个文件信息

评论

共有 条评论