读写xml笔记

来源:互联网 发布:linux服务启动脚本 编辑:程序博客网 时间:2024/06/11 17:43

读写xml

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class TestReadXml {

        public static String getClassPath() {
               return XmlParser.class.getClass().getResource("/").toString();
       }

        public static void ff() {
              File f2 = new File(XmlParser.class.getResource("").getPath());
              System. out.println(f2);
       }

        public static void main(String[] args) {
               try {
                     SAXReader reader = new SAXReader();
                     String xmlPath = System. getProperty("user.dir") + "\\src\\test\\java\\test.xml" ;
                     File file = new File(xmlPath);
                      if (file.exists()) {
                           Document document = reader.read(file);
                           Element root = document.getRootElement();
                            // 根据节点名获取节点
                            System. out.println(root.element("login" ).getTextTrim());

                            // 遍历节点
                            for (Iterator i = root.elementIterator(); i.hasNext();) {
                                  Element element = (Element) i.next();
                                  System. out.println(element.asXML());
                           }

                            // 根据xpath 根据节点名,节点属性查找指定的节点
                           System. out.println("----------------------获取指定节点的值----------------------------------" );
                           List<Node> node1 = root.selectNodes("//p[@id='hehe']");
                            for (Node n : node1) {
                                  System. out.println(n.getName());
                                  System. out.println(n.getText());
                           }
                           System. out.println("----------------------精确查找----------------------------------" );
                            // 精确查找
                           List<Node> node2 = root.selectNodes("//div/p[@id='hi']");
                            for (Node n : node2) {
                                  System. out.println(n.getName());
                                  System. out.println(n.getText());
                           }
                            // hh 为xml节点名
                           Element hh = root.element( "hh");

                           System. out.println("---------------------获取父节点的名字-----------------------" );
                            // 获取父节点
                           System. out.println(hh.getParent().getName());

                            // 设置节点的值
                           hh.setText( "21");
                           System. out.println(hh.getText());

                            // 写入文件
                           OutputFormat format = OutputFormat.createPrettyPrint();
                           format.setEncoding( "utf-8");
                           XMLWriter writer = new XMLWriter(new FileWriter(xmlPath), format);
                           writer.write(document);
                           writer.close();

                            /*
                            * //获取子节点 System.out.println(hh.getNodeType());
                            * System.out.println(hh.getData());
                            * System.out.println(hh.getName());
                            * System.out.println(hh.getText());
                            * System.out.println(hh.getTextTrim()); hh.setText("21");
                            * System.out.println(hh.getTextTrim());
                            */
                     }
              } catch (DocumentException e) {
                     e.printStackTrace();
              } catch (IOException e) {
                     e.printStackTrace();
              }
       }

}
//参考网址:http://berdy.iteye.com/blog/807883
//

0 0
原创粉丝点击