java Xml 解析 Dom
来源:互联网 发布:网络言论自由作文800字 编辑:程序博客网 时间:2024/04/30 07:37
xml 文件
employer.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><employee><employer email="LiMing@126.com"><name>LiMIng</name><sex>M</sex><age>30</age></employer><employer email="Kate55@hotmail.com"><name>Kate</name><sex>F</sex><age>28</age></employer></employee>java 代码
XmlParser.java
package XmlParser;/* * Date 2014.02.20 * referrece * ahtor:璀若星辰 */import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;public class XmlParser {private Document doc;private String path;//读入一个XML文档,首先要一个DocumentBuilder对象public XmlParser(String path){this.path = path;//实例化一个文档构建器工厂DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();try{ //通过文档构建器工厂获取一个文档构建器DocumentBuilder builder = factory.newDocumentBuilder();//通过文档构建器构建一个文档实例this.doc = builder.parse(path);}catch(Exception e){e.printStackTrace();}}public void parseEx(){NodeList n1 = doc.getElementsByTagName("employer");System.out.println(n1.getLength());for (int i = 0;i < n1.getLength(); i++ ){Node n = n1.item(i);System.out.println("n="+n);//获取 n 节点下所有的子节点。此处值得注意,在DOM解析时会将所有回车都视为 n 节点的子节点。//排除回车if(n instanceof Text){continue;}parseEmployer((Element)n);}}//获取value 和 text 方法public void parseEmployer(Element e){String email = e.getAttribute("email");System.out.println("email="+email);String name = getChildInnerText(e, "name");System.out.println("name="+name);String age = getChildInnerText(e, "age");System.out.println("age="+age);}//获取子节点方法public Element getChild(Element e,String tagName){return (Element) e.getElementsByTagName(tagName).item(0);}//获取节点文本内容方法public String getChildInnerText(Element e,String childTagName){return e.getElementsByTagName(childTagName).item(0).getTextContent();}//添加节点public void addNode(){Text text = doc.createTextNode(" ");Text newline = doc.createTextNode("\n");Element ele = doc.createElement("employer");ele.setAttribute("email","Java@Sun.com" );ele.setAttribute("password", "123"); ele.setTextContent("xml文件"); Element ele2 = doc.createElement("name"); ele2.setTextContent("BIll"); Node n = doc.getElementsByTagName("employee").item(0); n.appendChild(text); n.appendChild(ele); n.appendChild(newline); n.appendChild(ele2); saveXml(); System.out.println("save success");}//同理删除节点 同添加节点但调用removeChild//保存方法 private void saveXml() { try { TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File(path)); transformer.transform(source, result); } catch (Exception e) { e.getStackTrace(); } }public static void main(String[] args) {XmlParser xp = new XmlParser("D:\\pleiades4.2\\pleiades\\eclipse\\workspace\\Test_knowledge\\JavaSource\\XmlParser\\employer.xml");xp.parseEx();xp.addNode();}}
0 0
- JAVA解析XML DOM
- JAVA解析XML DOM
- JAVA解析XML DOM
- Java Dom解析XML
- JAVA解析XML DOM
- Java Dom解析xml
- Java Dom解析xml
- java dom解析xml
- JAVA dom解析xml
- Java DOM解析XML
- JAVA DOM XML解析
- Java解析XML---DOM
- Java DOM解析XML
- Java Dom解析xml
- java Xml 解析 Dom
- java DOM解析XML
- Java Dom解析xml
- Java Dom解析xml
- java中的异常
- 【Linux C】第四章 指针与字符串
- vsftpd在opensuse环境下建立ftp服务器
- Android内存(内存溢出 内存不足 内存低 .)优化详解
- 笔记 <Core Java2 卷1>第三章 基本编程结构
- java Xml 解析 Dom
- Android开发eclipse无法签名android程序包的问题
- tq210 按键驱动
- C++错误unresolved external symbol _WinMain@1
- 奇幻RPG(角色技能 与 Strategy模式)
- 异步调用与线程(总结篇)
- android自定义滑动开关控件,适合所有的android系统
- AO与AE的区别(转载)
- 2014 关键时刻