您的位置:首页 > 编程语言 > Java开发

java操作XML

2015-07-23 09:26 459 查看
     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_l
d4a6
ist.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");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java操作XML