xml相关操作
xml :可扩展标记语言,XML 被设计用来传输和存储数据。
javascript解析xml:
<script> if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","note.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue; document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue; </script>
java解析xml:(dom4j)
准备xml数据:
<stu>
<student id="1001"> <name>张三</name> <sex>男</sex> <age>18</age> </student> <student id="1002"> <name>李四</name> <sex>女</sex> <age>17</age> </student> </stu>
获取xml信息:
SAXReader sr = new SAXReader(); Document document = sr.read("src/stu.xml"); // 获取根节点 Element root = document.getRootElement(); // 获取根节点下子节点集合 List<Element> elements = root.elements(); // 获取student节点集合 //List<Element> elements = root.elements("student"); for (Element element : elements) { // student // 获取值(1) List<Element> list = element.elements(); for (Element element2 : list) { System.out.println(element2.getTextTrim()); } // 获取值(2) System.out.println(element.elementTextTrim("name")); System.out.println(element.elementTextTrim("sex")); System.out.println(element.elementTextTrim("age")); // 获取属性值 System.out.println(element.attributeValue("id")); }
新增xml节点:
Element menuElement = root.addElement("student");
Element engNameElement = menuElement.addElement("name");
engNameElement.setText("王五");
Element chiNameElement = menuElement.addElement("age");
chiNameElement.setText("19");
Element sexNameElement = menuElement.addElement("sex");
sexNameElement.setText("男");
menuElement.addAttribute("id", "1003");
修改xml节点:
List<Element> menuElements = root.elements();; for (Element element : menuElements) { if(element.attributeValue("id").equals("1001")) { element.element("name").setText("赵六"); } }
删除xml节点:
List<Element> menuElements = root.elements();; for (Element element : menuElements) { if(element.attributeValue("id").equals("1003")) { root.remove(element); break; } }
修改xml节点后写入文件:
XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/stu.xml"), "UTF-8")); writer.write(document); writer.close();
创建xml文件:
public static void main(String args[]) {
String fileName = "c:/text.xml";
Document document = DocumentHelper.createDocument();// 建立document对象,用来操作xml文件
Element booksElement = document.addElement("books");// 建立根节点
booksElement.addComment("This is a test for dom4j ");// 加入一行注释
Element bookElement = booksElement.addElement("book");// 添加一个book节点
bookElement.addAttribute("show", "yes");// 添加属性内容
Element titleElement = bookElement.addElement("title");// 添加文本节点
titleElement.setText("ajax in action");// 添加文本内容
try {
XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)));
writer.write(document) //写入
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
浙公网安备 33010602011771号