首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

把一个简单功能的SAX改成DOM,大侠们帮帮忙!解决思路

2012-02-24 
把一个简单功能的SAX改成DOM,大侠们帮帮忙!实现的功能应该是读出除了catalog外每个node的local name 。。XML

把一个简单功能的SAX改成DOM,大侠们帮帮忙!
实现的功能应该是读出除了catalog外每个node的local name 。。

XML code
import org.xml.sax.*;import org.xml.sax.helpers.DefaultHandler;import org.apache.xerces.parsers.SAXParser;public class plantsSAX extends DefaultHandler{       public void endDocument()        {              System.out.println("Finished!\n");        }       public void startElement(String uri, String localName, String rawName,Attributes attributes)       {           if (!localName.equals("catalog"))           System.out.println("Element : " + localName);       }       public static void main(String[] args)       {           try{                      SaxNames SAXHandler = new SaxNames();                      SAXParser parser = new SAXParser();                      parser.setContentHandler(SAXHandler);                      parser.setErrorHandler(SAXHandler);                      parser.parse(args[0]);                }           catch(Exception e){e.printStackTrace(System.err);}        }}

下面是XML文档:

XML code
<?xml version="1.0" encoding="iso-8859-1"?><catalog xmlns="urn:mycompany:examples:plants"><plant><common>Bloodroot</common><botanical>Sanguinaria canadensis</botanical><zone>4</zone><light>Mostly Shady</light><price>2.44</price><availability instock="yes">100</availability></plant><plant><common>Columbine</common><botanical>Aquilegia canadensis</botanical><zone>3</zone><light>Full Sun</light><price>49.99</price><availability instock="no"><nextdel>31/03/2009</nextdel></availability></plant><plant><common>Marsh Marigold</common><botanical>Caltha palustris</botanical><zone>4</zone><light>Mostly Sunny</light><price>6.81</price><availability instock="yes"><stocklevel>300</stocklevel></availability></plant></catalog>


[解决办法]
SAX的效率比DOM快多了!搞不懂.这是一个读二级菜单的dom.
Java code
   1. import java.io.File;     2. import java.util.ArrayList;     3. import java.util.HashMap;     4. import java.util.List;     5. import java.util.Map;     6. import javax.xml.parsers.DocumentBuilder;     7. import javax.xml.parsers.DocumentBuilderFactory;     8. import org.w3c.dom.Document;     9. import org.w3c.dom.Element;    10. import org.w3c.dom.Node;    11. import org.w3c.dom.NodeList;    12. public class ReadXMLMenu {    13.     private static ReadXMLMenu xmlMenu=null;    14.     private Document doc=null;    15.     private List<SystemMenu> parentMenu=new ArrayList<SystemMenu>();    16.     private Map<Integer,List<SystemMenu>> childMenu=new HashMap<Integer,List<SystemMenu>>();    17.         18.     private ReadXMLMenu(String xmlfile)throws Exception {    19.         DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();     20.         dbf.setIgnoringElementContentWhitespace(true);    21.         DocumentBuilder db=dbf.newDocumentBuilder(); 

热点排行