java用Dom4j来解析XML
来源:互联网 发布:同道伟业大数据 编辑:程序博客网 时间:2024/05/22 14:13
首先,创建一个工程然后构建路径,点击添加jar包,然后找到jar包添加就行了。
第一、
<?xml version="1.0" encoding="UTF-8"?> <students> <student1 id="001"> <微信公众号>@残缺的孤独</微信公众号> <学号>20140101</学号> <地址>北京海淀区</地址> <座右铭>要么强大,要么听话</座右铭> </student1> <student2 id="002"> <新浪微博>@残缺的孤独</新浪微博> <学号>20140102</学号> <地址>北京朝阳区</地址> <座右铭>在哭泣中学会坚强</座右铭> </student2></students>
在工程文件下创造一个"123.xml"
写一个遍历XML的函数
private void listNodes(Element node) {//输出当前节点的名称System.out.println("当前节点的名称:" + node.getName());//创建一个node的属性的列表List<Attribute> list = node.attributes();for(Attribute attribute : list) {System.out.println("属性" + attribute.getName() + ":" +attribute.getValue());}//如果节点还有内容的话,输出内容的名字和内容<name>Text</name>if(!node.getTextTrim().equals("")) {System.out.println(node.getName() + ":" + node.getText());}//获得节点的元素的迭代器Iterator<Element> iterator = node.elementIterator();//如果有元素的话递归while(iterator.hasNext()) {Element e = iterator.next();listNodes(e);}}
用一个SAXReader的对象来获取一个Document的对象。进而通过document来获取根节点元素。然后遍历输出
public void test() throws DocumentException {//创建一个SAXReader的对象SAXReader reader = new SAXReader();File file = new File("123.xml");//创建一个Document的对象,从文件中读取数据Document document = reader.read(file);//获取XML的根节点Element root = document.getRootElement();//输出XML的的数据listNodes(root);}
添加属性<student id = 1>的id 就是属性
public void test2() throws DocumentException {//创建一个SAXReader的对象SAXReader reader = new SAXReader();File file = new File("123.xml");//创建一个Document的对象,从文件中读取数据Document document = reader.read(file);//获取XML的根节点Element root = document.getRootElement();System.out.println("---------添加节点前---------");Element student1element = root.element("student1");listNodes(student1element);Attribute idAttribute = student1element.attribute("id");student1element.remove(idAttribute);student1element.addAttribute("newId", "123");System.out.println("---------添加节点后---------");listNodes(student1element);}attribute(String args)这个函数的是用来获取一个名字为"args"的属性对象,然后调用remove来删除这个属性。还可以通过addAttribute("name_attribute","value_attribute")来添加一个名字为"name_attribute",值为"value_attribute"的属性
public void test3() throws DocumentException {SAXReader reader = new SAXReader();File file = new File("123.xml");Document document = reader.read(file);Element root = document.getRootElement();System.out.println("-------添加节点前-------");Element student1element = root.element("student1");listNodes(student1element);Element phoneElement = student1element.addElement("phone");phoneElement.setText("18792665072");System.out.println("-------添加节点后--------");listNodes(student1element);}addElement(String name)的作用是加一个名字为“phone”的元素,addElement可以返回一个Element的对象,调用Element的setText(String content)的方法来设置元素的内容。
public void test4() throws DocumentException, IOException {SAXReader reader = new SAXReader();File file = new File("123.xml");Document document = reader.read(file);Element root = document.getRootElement();System.out.println("--------添加节点前-------");Element student1Element = root.element("student1");listNodes(student1Element);Element phoneElement = student1Element.addElement("phone");phoneElement.setText("18792665072");System.out.println("-------添加节点后-------");listNodes(student1Element);//将student1Element1写进文件里writerDocumentToNewFile(document);System.out.println("已经成功写入文件中");}private void writerDocumentToNewFile(Document document) throws IOException {OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");File file = new File("234.xml");FileOutputStream filewriter = new FileOutputStream(file);OutputStreamWriter out = new OutputStreamWriter(filewriter, "UTF-8"); XMLWriter writer = new XMLWriter(out, format);writer.write(document);writer.flush();writer.close();}可以用一个XMLWriter的对象来把一个XML写进文件中XMLWriter(out,format)来写。OutputFormat来创造一个对象。调用静态方法createPrettyPrint()方法来创建一个输出格式。然后调用format的setEncodin(String charset)来设置输出格式。并通过OutputSteamWriter对象来输出。但是当我使用BufferedReader的方法来输出的时候,会出现乱码,只能通过这个方法来输出。
阅读全文
0 0
- java用Dom4j来解析XML
- JAVA DOM4J解析XML
- JAVA解析XML-DOM4J
- java dom4j解析xml
- Java Dom4j解析 xml
- JAVA dom4j 解析xml
- java dom4j解析xml
- JAVA DOM4J解析XML
- java dom4j解析xml
- Java通过Dom4j来解析和创建XML文件
- java解析xml字符串(用dom4j)
- java解析xml字符串(用dom4j)
- java解析xml字符串(用dom4j)
- java解析xml字符串(用dom4j)
- 用DOM4J解析XML
- 用DOM4J解析XML
- 用dom4j解析xml
- 使用dom4j来解析,生成xml文件
- aggregates not allowed in where clause
- 42. Trapping Rain Water
- 三栏自适应布局方法
- 你的名字。
- 容易被忽略、轻视,却可能影响编程学习的计算机基础知识
- java用Dom4j来解析XML
- centos7安装mysql5.7操作步骤
- docker: No port specified: 8763:<empty>
- vBRAS控制面微服务化
- 关于tree命令的编写
- docker-compose的使用
- 多线程断点续传视频列表
- PowerDesigner概念模型实体关系(one-one,one-many,many-one,many-many,Dependent,Mandatory,Dominant role)说明
- pc端的:active伪类在移动端如何实现?