国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
XML代碼-如何使用DOM解析xml,打印xml文檔信息工具類

http://blog.csdn.net/l_010204019/archive/2007/08/14/1742694.aspx
學(xué)習(xí)時(shí)仿照書上例子自己練習(xí)編寫的.加上了很多注釋,應(yīng)該以后的工作學(xué)習(xí)能用上.也算資料儲(chǔ)備吧.

一.使用DOM來解析xml文檔.
文件:DepartmentInfo.java,Department.xml.
說明:將xerces2.9的xercesImp.jar導(dǎo)入Project.

DepartmentInfo.java
import java.io.File;
import java.io.IOException;

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

import org.w3c.dom.*;
import org.xml.sax.SAXException;


public class DepartmentInfo
{
    
public static void main(String [] args)
    
{
        
//獲得一個(gè)工廠類的實(shí)例
        DocumentBuilderFactory bdf =DocumentBuilderFactory.newInstance();
        
try
        
{
            
//獲得解析器封裝的DOM解析器
            DocumentBuilder db=bdf.newDocumentBuilder();
            
//指定要分析的xml文檔
            File f=new File("Department.xml");
            
//獲得xml文檔的對(duì)象
            Document dep=db.parse(f);
              System.out.println( dep.getDocumentElement().getTagName());
            
//**************以上步驟是所有使用DOM解析xml文檔所必須的3步驟************//  
            
            
//這里是獲得所有dep下的所有名為deopartment,并且按照在xml文檔出現(xiàn)次序的Node集合  
            NodeList nl=dep.getElementsByTagName("department") ;
            
//獲得該集合的長(zhǎng)度
            int len=nl.getLength();
            
for(int i=0;i<len;i++)
            
{
              
//獲取該集合第i個(gè)出現(xiàn)的Node對(duì)象
              Node nod=nl.item(i);
              
//將起強(qiáng)制轉(zhuǎn)換為其父類Element
              Element elNod=(Element) nod;
              
//這里文本部分為文本節(jié)點(diǎn).必須使用其自身的getNodeValue()方法才能返回值
              String depname=elNod.getElementsByTagName("Zh").item(0).getChildNodes().item(0).getNodeValue();
              String depadress
=elNod.getElementsByTagName("depadress").item(0).getChildNodes().item(0).getNodeValue();
              String depInfo
=elNod.getElementsByTagName("depInfo").item(0).getChildNodes().item(0).getNodeValue();
              
              
              
//**********以下是打印格式*****************************************///
              System.out.print("部門名稱:"+depname);
              System.out.println(
"  "+elNod.getElementsByTagName("En").item(0).getChildNodes().item(0).getNodeValue());
              System.out.println(
"部門所在地:"+depadress);
              System.out.println(
"部門信息:"+depInfo);
              System.out.println(
"------------------------------------------------");
              
              
            }

        }

        
catch (ParserConfigurationException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }

        
catch (SAXException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }

        
catch (IOException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }

        
    }


}


Department.xml
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="Department.xsl"?>

<department>
    
<depname>
        
<Zh>大大發(fā)</Zh>
        
<En>BigandRich</En>
    
</depname>
    
<depadress>廣州市中山三路</depadress>
    
<depInfo>經(jīng)營(yíng)糧油大米食品</depInfo>
    
</department>

二 使用DOM解析器遞歸遍歷DOM節(jié)點(diǎn)樹 (最近修改 by 07-8-14)
文件:XmlInfoPrint.java,Books.xml.
說明:將xerces2.9的xercesImp.jar導(dǎo)入Project.
              XmlInfoPrint.java (可以作為工具類來使用,打印出xml文檔基本信息.可以根據(jù)以后項(xiàng)目需要再完善功能)
import java.io.File;
import java.io.IOException;

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

import org.w3c.dom.*;
import org.xml.sax.SAXException;



public class XmlInfoPrint
{
    
public static void printInfomation(Node node)
    
/**
     * 打印元素節(jié)點(diǎn)名稱以及其值,將不顯示非元素文本的文本節(jié)點(diǎn)
     
*/

    
{
        
if(node.getNodeName()!="#text"//name="#text"的文本節(jié)點(diǎn)不作為輸出
        System.out.println(node.getNodeName()+" :" );
        
if(node.getNodeValue()!=null||node.getNodeName()=="#text")
        System.out.println(node.getNodeValue());
    }

    
    
public static void searchNode(Node node)
    
/**
     * 遍歷文檔所有節(jié)點(diǎn)元素,并將其通過pritnInfomation(Node node)來打印出來
     
*/

    
{
        
short type=node.getNodeType();//獲取節(jié)點(diǎn)元素的類型
        switch (type)
        
{    
        
case Node.PROCESSING_INSTRUCTION_NODE:
            printInfomation(node);
            
break;
        
case Node.ELEMENT_NODE:
            printInfomation(node);
            
//若元素節(jié)點(diǎn)有屬性節(jié)點(diǎn)則將其打印出來
            if(node.hasAttributes())
            
{
                  NamedNodeMap attr
=node.getAttributes();//獲取節(jié)點(diǎn)的屬性節(jié)點(diǎn)的集合,NamedNodeMap是live的
                  int len=attr.getLength();
                  
for(int i=0;i<len;i++)
                  
{
                      System.out.print(
"ID="+attr.item(i).getNodeValue());
                  }

                      
            }

            
            
break;
        
case Node.TEXT_NODE:
            printInfomation(node);
            
break;
            
        
default:
            
break;
        }

        Node child
=node.getFirstChild();
        
while(child!=null)
        
{
            searchNode(child);
            child
=child.getNextSibling();
        }

    }

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args)
    
{
        
// TODO 自動(dòng)生成方法存根
        DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
        
try
        
{
            DocumentBuilder db
=dbf.newDocumentBuilder();
            File f
=new File("Books.xml");
            Document book
=db.parse(f);
            XmlInfoPrint.searchNode(book);
        }

        
catch (ParserConfigurationException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }

        
catch (SAXException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }

        
catch (IOException e)
        
{
            
// TODO 自動(dòng)生成 catch 塊
            e.printStackTrace();
        }


    }


}


Books.xml
<?xml version="1.0" encoding="gb2312"?> 
<?xml-stylesheet type="text/xsl" href="book.xsl"?>

<books>
    
<book id="0001">
        
<名稱>Eclipse從入門到精通(第2版珍藏版)(附盤)</名稱>
        
<作者>陳剛</作者>
        
<出版社>清華大學(xué)出版社</出版社>
        
<價(jià)格>¥46.70</價(jià)格>
    
</book>
    
<book id="0002">
        
<名稱>Java編程思想(第4版)(中文版)</名稱>
        
<作者>(美)Bruce Eckel</作者>
        
<出版社>機(jī)械工業(yè)出版社</出版社>
        
<價(jià)格>¥88.20</價(jià)格>
    
</book>
    
<book id="0003">
        
<名稱>VC++深入詳解(附光盤)/孫鑫作品系列</名稱>
        
<作者>孫鑫 余安萍</作者>
        
<出版社>電子工業(yè)出版社</出版社>
        
<價(jià)格>¥67.70</價(jià)格>
    
</book>
    
<book id="0004">
        
<名稱>WebWork in Action中文版</名稱>
        
<作者>(美)Patrick Lightbody、Jason Carreira</作者>
        
<出版社>電子工業(yè)出版社</出版社>
        
<價(jià)格>¥35.40</價(jià)格>
    
</book>
    
<book id="0005">
        
<名稱>
        Java Web開發(fā)詳解--XML+XSLT+Servlet+JSP深入剖析與實(shí)例應(yīng)用(附光盤)/孫鑫作品系列   
        
</名稱>
        
<作者>孫鑫</作者>
        
<出版社>電子工業(yè)出版社</出版社>
        
<價(jià)格>¥73.90</價(jià)格>
    
</book>
    
</books>


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1741467


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java解析XML文檔――dom解析xml
在java中使用dom解析xml
Java解析XML匯總(DOM/SAX/JDOM/DOM4j/XPath)
Java DOM 解析 XML詳解
JAVA解析XML的四種方法比較
JR - 精品文章 - Java語言的XML驗(yàn)證API
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服