以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  关于DOM解析XML问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=51415)


--  作者:linlingyue
--  发布时间:8/15/2007 5:56:00 PM

--  关于DOM解析XML问题
我从网上找了一个DOM解析XML的程序,程序基本理解了,就是没有测试成功,我不知道XML应该放在什么地方才可以读取,希望大家给指点一下,我把代码拿出来共享一下:


package com.lly.test;

import javax.xml.parsers.*;
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
/*
*                XML范例
* <?xml version="1.0" encoding="gb2312"?>
  
  <books>
  
      <book email="zhoujunhui">
      
          <name>rjzjh</name>
          
          <price>jjjjjj</price>
      
      </book>
  
  </books>
*/

public class DomParseXml
{
    public DomParseXml()
    {
        DocumentBuilderFactory objDBF = DocumentBuilderFactory.newInstance() ;
        
        try
        {
            DocumentBuilder objDB = objDBF.newDocumentBuilder();
            InputStream objIS = new FileInputStream( "bin/libary.xml" );
            Document objD = objDB.parse( objIS );

            Element objE = objD.getDocumentElement();
            NodeList objNL = objE.getChildNodes() ;  // 节点的集合
            
            if ( objNL != null )
            {
                for ( int i =0  ; i < objNL.getLength() ; i ++ )
                {
                    Node objN = objNL.item( i );
                    
                    if ( objN.getNodeType() == Node.ELEMENT_NODE )
                    {
                        String strEmail = objN.getAttributes().getNamedItem( "email" ).getNodeValue();
                        System.out.println( "email--->" + strEmail );
                        
                        for ( Node objSN = objN.getFirstChild() ; objSN != null ; objSN = objSN.getNextSibling() )
                        {
                            if ( objSN.getNodeType() == Node.ELEMENT_NODE )
                            {
                                if ( objSN.getNodeName().equals( "name" ))
                                {
                                    String strName = objSN.getNodeValue() ;
                                    
                                    String strNName = objSN.getFirstChild().getNodeValue();
                                    
                                    System.out.println( "strName--->" + strName );
                                    System.out.println( "strNName--->" + strNName );
                                }
                                
                                if (objSN.getNodeName().equals(  "price"  ))
                                {
                                    String strPrice = objSN.getNodeValue() ;
                                    System.out.println( "strPrice-->" + strPrice );
                                }
                            }
                        }
                    }
                }
            }
        }
        catch ( ParserConfigurationException e )
        {
            e.printStackTrace();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
        catch(SAXException e)
        {
            e.printStackTrace();
        }
    }
    
    public static void main(String args[])
    {
        new DomParseXml();
    }
    
}


--  作者:linlingyue
--  发布时间:8/17/2007 3:55:00 PM

--  
给指点一下吧
--  作者:fangel2000
--  发布时间:10/31/2007 6:58:00 PM

--  
我是用Eclipse建立工程的,然后在工程中建立类
你将XML文件保存后存放到工程文件夹下即可。
你的代码是InputStream objIS = new FileInputStream( "bin/libary.xml" );
可以放到bin目录下

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