XML解析代码课堂讲解实例

前端之家收集整理的这篇文章主要介绍了XML解析代码课堂讲解实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. //获取所有的子元素,不包括回车
  1. package com.dom4jDemo;
  2.  
  3. import java.io.File;
  4. import java.util.List;
  5.  
  6. import org.dom4j.Document;
  7. import org.dom4j.DocumentException;
  8. import org.dom4j.Element;
  9. import org.dom4j.io.SAXReader;
  10.  
  11. public class Dom4jDemo1 {
  12.  
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. String path = "src/scores.xml";
  16. File file = new File(path);
  17. SAXReader saxReader = new SAXReader();
  18. try {
  19. Document doc = saxReader.read(file);
  20. Element root = doc.getRootElement();
  21. //获取所有的子元素,不包括回车
  22. List<Element> eles = root.elements();
  23. for(Element ele : eles){
  24. System.out.println(ele.getName());
  25. List<Element> children = ele.elements();
  26. for(Element e : children){
  27. System.out.println(e.getName() + "\t" + e.getText());
  28. }
  29. }
  30. } catch (DocumentException e) {
  31. // TODO Auto-generated catch block
  32. e.printStackTrace();
  33. }
  34. }
  35.  
  36. }
  37.  
  38.  
  39.  
  40.  
  41. DOM4j
  42.  
  43.  
  44.  
  45.  
  46. ``package com.dom4jDemo;
  47.  
  48. import java.io.File;
  49. import java.io.FileWriter;
  50. import java.io.IOException;
  51.  
  52. import org.dom4j.Document;
  53. import org.dom4j.DocumentException;
  54. import org.dom4j.Element;
  55. import org.dom4j.io.OutputFormat;
  56. import org.dom4j.io.SAXReader;
  57. import org.dom4j.io.XMLWriter;
  58.  
  59. public class Dom4jDemo2 {
  60.  
  61. public static void main(String[] args) {
  62. // TODO Auto-generated method stub
  63. String path = "src/scores.xml";
  64. File file = new File(path);
  65. SAXReader saxReader = new SAXReader();
  66. try {
  67. Document doc = saxReader.read(file);
  68. //获取根元素
  69. Element root = doc.getRootElement();
  70. //获取一个指定名字的子元素
  71. Element eleStu = root.element("student");
  72. //复制节点
  73. Element newStu = (Element) eleStu.clone();
  74. //获取子元素并设置值
  75. newStu.element("id").setText("5");
  76. newStu.element("name").setText("孙七");
  77. newStu.element("lesson").setText("hibernate");
  78. newStu.element("score").setText("92");
  79. root.add(newStu);
  80. //删除节点
  81. root.remove(eleStu);
  82. //设置输出编码
  83. OutputFormat of = OutputFormat.createCompactFormat();
  84. of.setEncoding("GBK");
  85. //构建输出流对象
  86. XMLWriter xw
  87. = new XMLWriter(new FileWriter(file),of);
  88. xw.write(doc);
  89. xw.close();
  90. } catch (DocumentException e) {
  91. // TODO Auto-generated catch block
  92. e.printStackTrace();
  93. } catch (IOException e) {
  94. // TODO Auto-generated catch block
  95. e.printStackTrace();
  96. }
  97. }
  98.  
  99. }

package com.dom;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DomDemo {

  1. public static void main(String[] args) {
  2. // TODO Auto-generated method stub
  3. //文件路径
  4. String path = "src/scores.xml";
  5. //创建解析器工厂
  6. DocumentBuilderFactory dbf
  7. = DocumentBuilderFactory.newInstance();
  8. DocumentBuilder db = null;
  9. try {//使用解析器工厂创建解析器
  10. db = dbf.newDocumentBuilder();
  11. //将XML文件映射成文档对象
  12. Document doc = db.parse(path);
  13. //根元素
  14. Element root = doc.getDocumentElement();
  15. System.out.println(root.getNodeName());
  16. //获取所有的子元素,包含换行和标签元素
  17. NodeList children = //root.getChildNodes();
  18. //获取标签名为student的元素集合,不包括换行
  19. root.getElementsByTagName("student");
  20. for(int i = 0; i < children.getLength();i++){
  21. Node node = children.item(i);
  22. //跳过换行

// if(node.getNodeType() == Node.TEXT_NODE){
// continue;
// }
System.out.println(node.getNodeName() + “\t” + node.getNodeValue());
Element ele = (Element)node;
//获取子元素的子元素
NodeList childNodes = ele.getChildNodes();
for(int j = 0;j < childNodes.getLength();j++){
Node n = childNodes.item(j);
if(n.getNodeType() == Node.TEXT_NODE){
continue;
}
System.out.println(n.getNodeName() + “\t” + n.getTextContent());
}
System.out.println(childNodes.getLength());
}
System.out.println(“子元素的数量:” + children.getLength());
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

  1.  

package com.dom;

import java.io.FileOutputStream;
import java.io.IOException;

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.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

public class DomDemo2 {

  1. public static void main(String[] args) {
  2. // TODO Auto-generated method stub
  3. String path = "src/scores.xml";
  4. DocumentBuilderFactory dbf
  5. = DocumentBuilderFactory.newInstance();
  6. DocumentBuilder db = null;
  7. try {
  8. db = dbf.newDocumentBuilder();
  9. Document doc = db.parse(path);
  10. Element root = doc.getDocumentElement();
  11. //第一种添加元素的办法

// Element eleStu = doc.createElement(“student”);
// Element eleId = doc.createElement(“id”);
// eleId.setTextContent(“3”);//设置文本值
// Element eleName = doc.createElement(“name”);
// eleName.setTextContent(“王五”);
// Element eleLesson = doc.createElement(“lesson”);
// eleLesson.setTextContent(“oracle”);
// Element elescore = doc.createElement(“score”);
// elescore.setTextContent(“78”);
// eleStu.appendChild(eleId);
// eleStu.appendChild(eleName);
// eleStu.appendChild(eleLesson);
// eleStu.appendChild(elescore);
// root.appendChild(eleStu);//添加元素至根元素
//第二种添加元素的办法
//获取添加的元素的模板,获取一个现有元素
Element eleStu = (Element) root.getElementsByTagName(“student”).item(0);
//复制现有元素创造一个新元素,包含换行
Element newEle = (Element) eleStu.cloneNode(true);
Node nodeId = newEle.getElementsByTagName(“id”).item(0);
nodeId.setTextContent(“4”);
Node nodeName = newEle.getElementsByTagName(“name”).item(0);
nodeName.setTextContent(“赵六”);
Node nodeLesson = newEle.getElementsByTagName(“lesson”).item(0);
nodeLesson.setTextContent(“JQuery”);
Node nodescore = newEle.getElementsByTagName(“score”).item(0);
nodescore.setTextContent(“88”);
root.appendChild(newEle);//添加元素至根元素
//保存文件
TransformerFactory tff =
TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
//设置要保存哪些内容到XML文件,默认是整个
DOMSource ds = new DOMSource(doc);
//设置保存编码
tf.setOutputProperty(OutputKeys.ENCODING,“UTF-8”);
StreamResult sr = new StreamResult(new FileOutputStream(path));
tf.transform(ds,sr);
System.out.println(“保存完成”);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

“`

猜你在找的XML相关文章