java操作XML

     package homework;

/*************************************************人物信息****************************************************/
public class Person 
{
private String name;
private int age;
private String sex;
private String[] hobby;
private String introduction;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public String getIntroduction() {
return introduction;
}
public void setIntroduction(String introduction) 
{
this.introduction = introduction;
}
@Override
public String toString()
{
String H="";
for(String str:hobby)
{
H+=str+",";
}

return "name="+name+",age="+age+",sex="+sex+",hobby="+H+"introduction="+introduction+"\n";
}



}


/*******************************针对上述信息进行写入与读取XML操作***********************************************/

package homework;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.w3c.dom.Attr;  
 
  
import org.w3c.dom.Node;  
import org.w3c.dom.NodeList;  
import org.xml.sax.SAXException;  


public class PullXml 
{
    private static List<Person> Test_person=null;
    
    private static org.w3c.dom.Document document;  
 
    /*读取文件
     * 
     * 
     */
public static void read() throws Exception 
{
SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src/test.xml"));
        Element root = document.getRootElement();
        
        
        List list  = root.elements("person");//将解析出来的allresource下的resourceitem放在list中
        
         Test_person = new ArrayList<Person>();//创建soerurce存放每一个resourceitem中资源
        
      
        for(Iterator i = list.iterator();i.hasNext();) 
        {
        Element resourceitem = (Element) i.next();
       
        String name = resourceitem.element("name").getText();
       
       
        int age = Integer.parseInt(resourceitem.element("age").getText());
       
        String sex = resourceitem.element("sex").getText();
       
        String  hobby = resourceitem.element("hobby").getText(); //把取出来的爱好项做一个字符串分割
        String[] HOBBYS=hobby.split(",");
       
       
        String introduction = resourceitem.element("introduction").getText();
       
       
       
        Person p = new Person();
        p.setName(name);
        p.setAge(age);
        p.setSex(sex);
        p.setHobby(HOBBYS);
        p.setIntroduction(introduction);
        Test_person.add(p);
       
       
        }
}
     


/*准备工作
     * 
     * 
     */
    public static void init() 
     {  
            try 
            {  
                DocumentBuilderFactory factory = DocumentBuilderFactory  
                        .newInstance();  
                DocumentBuilder builder = factory.newDocumentBuilder();  
                document = builder.newDocument();  
            }
            catch (ParserConfigurationException e) 
            {  
                System.out.println(e.getMessage());  
            }  
      }  
    
    /*创建XML文件方法
     * String fileName 文件名称
     * 
     * 
     */
    public static void createXml(String fileName)
    {  
        init();  
        List<Person> person_list=new ArrayList<Person>();
        
        Person person_content=new Person();
        
        person_content.setName("刘胡来");
        
        person_content.setAge(25);
        
        person_content.setSex("M");
        
        person_content.setIntroduction("hello everbody thanks for you help!");
        String[] H={"篮球","象棋","武侠小说"};
        
        person_content.setHobby(H);
        
        person_list.add(person_content);
        
       
        
        
        
        
        
        
        
        org.w3c.dom.Element root = document.createElement("person");   //创建根节点  
        document.appendChild(root);  
        
        org.w3c.dom.Element item1 = document.createElement("person");  
       
        item1.setAttribute("id", "21");    //增加属性的另一种方法  
      
        root.appendChild(item1);  
        
        for(int i=0;i<person_list.size();i++)
        {
       
               
             /* 创建一个完成的节点,start */  
             org.w3c.dom.Element name = document.createElement("name"); 
             name.appendChild(document.createTextNode(person_list.get(i).getName()));  
             item1.appendChild(name); 
             
             org.w3c.dom.Element age = document.createElement("age"); 
             age.appendChild(document.createTextNode(String.valueOf(person_list.get(i).getAge())));  
             item1.appendChild(age); 
             
             org.w3c.dom.Element sex= document.createElement("sex"); 
             sex.appendChild(document.createTextNode(person_list.get(i).getSex()));  
             item1.appendChild(sex); 
             
             String[] hobbyary=person_list.get(i).getHobby();
              
             
             String hobbystr="";
             for(int j=0;j<hobbyary.length;j++)
             {
            hobbystr+=hobbyary[j]+",";
            //System.out.println("read file:"+hobbyary[j]);
             }
             org.w3c.dom.Element hobby= document.createElement("hobby"); 
             hobby.appendChild(document.createTextNode(hobbystr));  
             item1.appendChild(hobby); 
             
             org.w3c.dom.Element intr= document.createElement("introduction"); 
             intr.appendChild(document.createTextNode(person_list.get(i).getIntroduction()));  
             item1.appendChild(intr); 
             
       
        }
        
          
        //将DOM对象document写入到xml文件中  
        TransformerFactory tf = TransformerFactory.newInstance();  
        try 
        {  
            Transformer transformer = tf.newTransformer();  
            
            DOMSource source = new DOMSource(document); 
            
            transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");  
            
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");  
            
            PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); 
            
            StreamResult result = new StreamResult(pw);  
            
            transformer.transform(source, result);     //关键转换  
            
            System.out.println("生成XML文件成功!");  
        } 
        catch (TransformerConfigurationException e) 
        { 
       
            System.out.println(e.getMessage());  
        } 
        catch (IllegalArgumentException e) {  
            System.out.println(e.getMessage());  
        } 
        catch (FileNotFoundException e) 
        {  
            System.out.println(e.getMessage());  
        }
        catch (TransformerException e) {  
            System.out.println(e.getMessage());  
        }  
    }  
   


public static void main(String[] args)
{
try 
{
read();

catch (Exception e) 
{

e.printStackTrace();
}

String result="";
for(int i=0;i<Test_person.size();i++)
{
result+=Test_person.get(i).toString();

}
System.out.println("得到解析内容是:"+result);


//调用 创建XML文件方法
//createXml("src/test.xml");

}


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值