以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML工具及XML开发环境 』  (http://bbs.xml.org.cn/list.asp?boardid=7)
----  求用java编写的解析器!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=5784)


--  作者:WilliamKO
--  发布时间:3/22/2004 3:08:00 AM

--  求用java编写的解析器!!
求用java编写的解析器,要源码。
各位高手谁有的话请链接到这里,或者发到我的邮箱grszxp@sohu.com
不管怎么样先谢谢了~~
--  作者:admin
--  发布时间:3/22/2004 11:45:00 AM

--  
这个网上多呢。。google看。
--  作者:txy1980
--  发布时间:11/10/2004 7:12:00 PM

--  
若是java编写的有关语言的解析器的话,可以试试javacc,一种java语言编写的解析器的生成器,可根据定义的语言规范声称其解析器。
--  作者:sxhong
--  发布时间:11/10/2004 11:23:00 PM

--  
你看一下下面的两个程序吧,可以解析的,不过是比较简单的

//////DOMDisplay用于XML文档的输出////////
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
       
public class DOMDisplay {
    
     public static void display (Node start)   
     {   
        if (start.getNodeType() == start.ELEMENT_NODE)    
        {       
            System.out.print("<"+start.getNodeName());       
            NamedNodeMap startAttr = start.getAttributes();   
            for (int i = 0; i < startAttr.getLength(); i++) {   
                Node attr = startAttr.item(i);   
                System.out.print(" "+attr.getNodeName()+   
                                "=\""+attr.getNodeValue()+"\"");   
            }       
            System.out.print(">");   
         } else if (start.getNodeType() == start.TEXT_NODE)  {
            System.out.print(start.getNodeValue());       
         }   
            
         for (Node child = start.getFirstChild();child != null;child = child.getNextSibling())   
         {   
             display(child);   
         }   
            
         if (start.getNodeType() == start.ELEMENT_NODE)    
         {       
             System.out.print("</"+start.getNodeName()+">");   
         }   
     }   
}
//////////////DocBuildDemo生成Document对象并通过上面的DOMDisplay.display(doc)输出,其中quotations.xml为一个有效的XML文档///
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
       
public class DocBuildDemo {
       
    public static void main (String args[]){
        DocumentBuilderFactory dbf = null;
        DocumentBuilder db = null;
        Document doc = null;
        try {
           dbf = DocumentBuilderFactory.newInstance();  
           db = dbf.newDocumentBuilder();
        } catch (ParserConfigurationException pce) {
           System.out.print("Could not replace parser: ");
           System.out.println(pce.getMessage());
        }
        try {
           
      doc = db.parse("quotations.xml");  
      
        } catch (java.io.IOException ie){
           System.out.println("Could not read file.");
        } catch (SAXException e) {
           System.out.print("Could not create Document: ");
           System.out.println(e.getMessage());
        }
        System.out.println("用DocumentBuilderFactory解析");
    
        DOMDisplay.display(doc);   
    }
}



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms