JAVA读写XML
来源:互联网 发布:java线程同优先级调度 编辑:程序博客网 时间:2024/06/04 20:11
参考:
http://zhangjunhd.blog.51cto.com/113473/126310/
所需要的包:
dom4j-2.0.0-ALPHA-2.jar
jaxen-1.1.4.jar 用于语句.selectNodes("//students/student/@sn");
XML如下:
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="students.xsl"?><students> <!--An Student Catalog--> <student sn="01"> <name>Yerasel</name> <age>18</age> </student> <student sn="02"> <name>Rudo</name> <age>20</age> </student></students>
代码如下:
package yerasel;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;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 XmlGen {public Document generateDocumentByMethod() {Document document = DocumentHelper.createDocument();// ProcessingInstructionMap<String, String> inMap = new HashMap<String, String>();inMap.put("type", "text/xsl");inMap.put("href", "students.xsl");document.addProcessingInstruction("xml-stylesheet", inMap);// root elementElement studentsElement = document.addElement("students");studentsElement.addComment("An Student Catalog");// son elementElement stuElement = studentsElement.addElement("student");stuElement.addAttribute("sn", "01");Element nameElement = stuElement.addElement("name");nameElement.setText("Yerasel");Element ageElement = stuElement.addElement("age");ageElement.setText("18");// son elementElement anotherStuElement = studentsElement.addElement("student");anotherStuElement.addAttribute("sn", "02");Element anotherNameElement = anotherStuElement.addElement("name");anotherNameElement.setText("Rudo");Element anotherAgeElement = anotherStuElement.addElement("age");anotherAgeElement.setText("20");return document;}public Document generateDocumentByString() {String text = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ "<?xml-stylesheet type=\"text/xsl\" href=\"students.xsl\"?>"+ "<students><!--An Student Catalog--> <student sn=\"01\">"+ "<name>sam</name><age>18</age></student><student sn=\"02\">"+ "<name>lin</name><age>20</age></student></students>";Document document = null;try {document = DocumentHelper.parseText(text);} catch (DocumentException e) {e.printStackTrace();}return document;}public void saveDocument(Document document, File outputXml) {try {// 美化格式OutputFormat format = OutputFormat.createPrettyPrint();/* * // 缩减格式 OutputFormat format = OutputFormat.createCompactFormat(); *//* * // 指定XML编码 format.setEncoding("GBK"); */XMLWriter output = new XMLWriter(new FileWriter(outputXml), format);output.write(document);output.close();} catch (IOException e) {System.out.println(e.getMessage());}}public static void main(String[] argv) {XmlGen dom4j = new XmlGen();Document document = null;document = dom4j.generateDocumentByMethod();// document = dom4j.generateDocumentByString();dom4j.saveDocument(document, new File("output.xml"));SAXReader saxReader = new SAXReader();try {document = saxReader.read("output.xml");} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}List<Attribute> list = (List<Attribute>) document.selectNodes("//students/student/@sn");Iterator<Attribute> iter = list.iterator();Element root = document.getRootElement();Element foo;Iterator<Element> i;i = root.elementIterator("student");while (iter.hasNext()) {Attribute attribute = (Attribute) iter.next(); // 标签属性foo = (Element) i.next();// 标签子节点元素if (attribute.getValue().equals("02")) {String sin = attribute.getValue();System.out.println("sin = " + sin);System.out.println("得到指定属性下的元素文本");System.out.println("name = " + foo.elementText("name"));System.out.println("age = " + foo.elementText("age"));// 列出所有属性,可以将IP、Port写入Conn标签的属性<Conn1 IP=2334, Port=133>System.out.println("遍历属性");for (Attribute e : list) {System.out.println(e.getName() + " " + e.getText());}}}// 全部遍历System.out.println("全部遍历");root = document.getRootElement();i = root.elementIterator("student");while (i.hasNext()) {foo = (Element) i.next();System.out.println("name = " + foo.elementText("name"));System.out.println("age = " + foo.elementText("age"));}}}
sin = 02得到指定属性下的元素文本name = Rudoage = 20遍历属性sn 01sn 02全部遍历name = Yeraselage = 18name = Rudoage = 20
- java读写xml
- java读写xml
- java读写xml
- java读写xml
- Java DOM读写XML
- java 读写xml
- Java 读写XML总结
- JAVA读写XML
- java读写xml文件
- java读写xml
- java读写xml文件
- java读写xml文件
- java读写xml文件
- Java读写XML文件
- java 读写xml dom4j
- Java读写XML实例
- java的xml读写
- java读写xml文件
- Linux 基本的 shell 命令
- 虚函数和纯虚函数的区别
- mysql优化需要注意的点
- ibatis中安全拼接语句
- 初级X 编程1
- JAVA读写XML
- asp.net mvc css url
- 模板输出 display
- 打印
- IOS开发 tableview中cell的用法
- OpenFlow-建设一个永远不会崩溃的网络
- 优化UITableView滚动速度
- 运用xlib进行事件响应(X11 API)的小例子
- ubuntu 10.04删除旧内核或有问题的内核