WEB开发网
开发学院软件开发Java Geronimo 叛逆者: 使用集成软件包:Codehaus 的 W... 阅读

Geronimo 叛逆者: 使用集成软件包:Codehaus 的 Woodstox

 2010-04-06 00:00:00 来源:WEB开发网   
核心提示: 清单 3. 用 DOM 进行解析Map<String,String>map=newHashMap<String,String>();DocumentBuilderbuilder=DocumentBuilderFactory.newInstance().newDocumen

清单 3. 用 DOM 进行解析

        Map<String,String> map = new HashMap<String,String>(); 
DocumentBuilder builder =  DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document dom = builder.parse(input); 
Element root = dom.getDocumentElement(); 
NodeList childNodes = root.getChildNodes(); 
Node photosNode = null; 
for (int i=0;i<childNodes.getLength();i++){ 
   Node node = childNodes.item(i); 
   if (node.getNodeName().equalsIgnoreCase("photos")){ 
     photosNode = node; 
     break; 
   } 
} 
childNodes = photosNode.getChildNodes(); 
for (int i=0;i<childNodes.getLength();i++){ 
   Node node = childNodes.item(i); 
   if (node.getNodeName().equalsIgnoreCase("photo")){ 
     String title = node.getAttributes().getNamedItem("title").getTextContent(); 
     String id = node.getAttributes().getNamedItem("id").getTextContent(); 
     map.put(id,title); 
   } 
} 

DOM 十分流行,因为它非常易于使用。只需将输入源传入解析器中,然后解析器将为您提供 document 对象。然后,您可以遍历子节点,直至找到照片节点。每个照片节点都是照片节点的子节点,因此您将遍历每个照片节点,然后访问每个照片节点的 title 和 id 属性并将其存储到映射中。

但是,DOM 也有一些明显的效率低下之处。您要存储大量的可能并不关心的数据,例如每张照片的所有者。您还将浏览所有数据两次:第一次浏览用于将其读入文档对象,然后在遍历文档对象时进行第二次浏览。避免这些效率低下之处的传统方法是使用 SAX。

上一页  1 2 3 4 5 6 7  下一页

Tags:Geronimo 叛逆者 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接