XML文件的读取

 
XML文件的读取:
book.xml文件放在工程目录下
 
<?xml version="1.0" encoding="UTF-8"?>
<book>
 <person>
 <first>Kiran</first>
 <last>Pai</last>
 <age>22</age>
 </person>
 
 <person>
 <first>Bill</first>
 <last>Gates</last>
 <age>46</age>
 </person>
 
 <person>
 <first>Steve</first>
 <last>Jobs</last>
 <age>40</age>
 </person>
</book>
 
 
 
ReadAndPrintXMLFile.java
 
package Test;
 
import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.*;
 
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
 
publicclass ReadAndPrintXMLFile{
 
    publicstaticvoid main (String argv []){
   
    try {
 
            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            Document doc = docBuilder.parse (new File("book.xml"));
 
            // normalize text representation           
            doc.getDocumentElement ().normalize ();
            System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName());
 
 
            NodeList listOfPersons = doc.getElementsByTagName("person");
            int totalPersons = listOfPersons.getLength();
            System.out.println("Total no of people : " + totalPersons);
 
            for(int s=0; s<listOfPersons.getLength() ; s++){
 
 
                Node firstPersonNode = listOfPersons.item(s);
                if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){
 
 
                    Element firstPersonElement = (Element)firstPersonNode;
 
                    //-------                   
                    NodeList firstNameList = firstPersonElement.getElementsByTagName("first");
                    Element firstNameElement = (Element)firstNameList.item(0);
 
                    NodeList textFNList = firstNameElement.getChildNodes();
                    System.out.println("First Name : " +
                           ((Node)textFNList.item(0)).getNodeValue().trim());
 
                    //-------                   
                    NodeList lastNameList = firstPersonElement.getElementsByTagName("last");
                    Element lastNameElement = (Element)lastNameList.item(0);
 
                   NodeList textLNList = lastNameElement.getChildNodes();
                    System.out.println("Last Name : " +
                           ((Node)textLNList.item(0)).getNodeValue().trim());
 
                    //----                   
                    NodeList ageList = firstPersonElement.getElementsByTagName("age");
                    Element ageElement = (Element)ageList.item(0);
 
                    NodeList textAgeList = ageElement.getChildNodes();
                    System.out.println("Age : " + ((Node)textAgeList.item(0)).getNodeValue().trim());
 
                    //------
 
                }//end of if clause
 
            }//end of for loop with s var
 
        }
        catch (SAXParseException err) {
               System.out.println ("** Parsing error" + ", line "
                                          + err.getLineNumber () + ", uri " + err.getSystemId ());
               System.out.println(" " + err.getMessage ());
 
        }
        catch (SAXException e) {
                Exception x = e.getException ();
                ((x == null) ? e : x).printStackTrace ();
 
        }
        catch (Throwable t) {
                t.printStackTrace ();
        }
        //System.exit (0);
    }//end of main
 
}
 
 
 
 
XMLTest.java
 
package Test;
 
import   javax.xml.transform.*;  
import   javax.xml.transform.dom.DOMSource;  
import   javax.xml.transform.stream.StreamResult;  
import   javax.xml.parsers.*;  
import   org.w3c.dom.*;    
 
public   class   XMLTest  
{  
    public   static   void   main(String[]   args)  
    {  
       try{  
           DocumentBuilderFactory   factory   =   DocumentBuilderFactory.newInstance();  
           DocumentBuilder   builder=factory.newDocumentBuilder();  
           Document   doc=builder.parse("book.xml");  
           doc.normalize();  
 
           NodeList   books   =doc.getDocumentElement().getChildNodes();  
           Node   book;  
           NodeList   lists;  
 
           book=books.item(1);  
 
//         //添加节点  
//         Element   id=doc.createElement("id");  
//         id.appendChild(doc.createTextNode("first"));  
//         book.appendChild(id);  
//         //删除节点  
//         book.removeChild(book.getChildNodes().item(1));  
// 
//         //修改节点  
//         Text   sina=doc.createTextNode("sina");  
//         book.getChildNodes().item(2).replaceChild(sina,book.getChildNodes().item(2).getFirstChild());  
// 
//         System.out.println(book.getChildNodes().item(2).getNodeName());  
//         System.out.println(books.getLength());  
//         System.out.println(book.getChildNodes().getLength());  
          
           //浏览查看  
           for(int   i=1;i<books.getLength();i++)  
           {  
              book=books.item(i);  
              lists=book.getChildNodes();  
              for(int   j=1;j<lists.getLength();j++)  
              {  
                  if(lists.item(j).getNodeType()==Node.ELEMENT_NODE)  
                     System.out.println(lists.item(j).getFirstChild().getNodeValue());  
              }  
           }  
 
           TransformerFactory   tFactory   =TransformerFactory.newInstance();  
           Transformer   transformer   =   tFactory.newTransformer();  
           DOMSource   source   =   new   DOMSource(doc);  
           StreamResult   result   =   new   StreamResult(new   java.io.File("book.xml"));  
           transformer.transform(source,   result);    
       }
       catch(Exception   e)
       {
           System.out.println(e);
       }  
    }
}  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值