麻烦老师帮我检查一下代码还有注释是否有误
来源:3-4 自由编程
jia_蛙
2019-10-31 09:48:21
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plan SYSTEM "plan.dtd"> <teaching-plan> <!-- number 课程编号 --> <course number="1101"> <course-name>大学英语</course-name> <class-hour>36</class-hour> <exam-form>考试</exam-form> </course> <course number="1102"> <course-name>高等数学</course-name> <class-hour>70</class-hour> <exam-form>考试</exam-form> </course> <course number="1103"> <course-name>计算机应用基础</course-name> <class-hour>108</class-hour> <exam-form>上机考试</exam-form> </course> <course number="1104"> <course-name>大学体育</course-name> <class-hour>80</class-hour> <exam-form>室外体育馆</exam-form> </course> </teaching-plan>
package com.zhou.dom4j; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; //对XML进行读操作 public class PlanReader { public void readXml() { //1.首先获取xml文件路径 String file = "../xml/src/plan.xml"; //2.实例化SAXReader对象,该对象是读取XML文本的核心类 SAXReader reader = new SAXReader(); try { //3. 使用reader方法对xml文件的路径进行解析,返回一个dom4j的顶级对象Document Document document = reader.read(file); //4. 通过getRootElement()方法获取到顶级对象的根节点 即teaching-plan节点 //返回一个Element对象 Element对象是用于包装dom4j所有的标签 Element root = document.getRootElement(); //5. 通过elements方法获取指定的标签集合 List<Element> employees = root.elements("course"); //6. 遍历该标签集合 for(Element employee: employees) { //7.使用element方法获取唯一的子节点对象中的值 //方式1:先获取指定的子节点对象 然后再获取子节点对象中的文本 Element name = employee.element("course-name"); System.out.println("科目:"+name.getText()); //方式2:直接获取子节点对象中的文本 System.out.println("分数:" + employee.elementText("class-hour")); System.out.println("考试类型:" + employee.elementText("exam-form")); //8.通过attribute方法对节点的属性进行提取 返回一个 Attribute对象 Attribute att = employee.attribute("number"); //获取Attribute对象中的文本 System.out.println("科目编号:" + att.getText()); System.out.println(); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { PlanReader planReader = new PlanReader(); planReader.readXml(); } }
package com.zhou.dom4j; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; //对XML进行写操作 public class PlanWriter { public void writeXml() { //1.首先获取要写入的文件路径 String file ="../xml/src/plan.xml"; //2.实例化读取XML文件的核心类SAXReader类 SAXReader reader = new SAXReader(); try { //3.使用read()方法读SAXReader对象进行解析,返回一个dom4j的顶级对象Document Document document = reader.read(file); //4.通过getRootElement()获取到顶级对象的根节点 Element root = document.getRootElement(); //5.使用写xml的核心方法 addElement()创建一个子节点 //运行完之后会在内存中幻剑一个全新的空的 course节点 Element course = root.addElement("course"); //6. 通过addAttribute()方法设置节点的属性 course.addAttribute("number", "1104"); //7. 设置course下的子节点并设置文本内容 //方式一 Element courseName = course.addElement("course-name"); courseName.setText("大学体育"); //方式二 course.addElement("class-hour").setText("80");; course.addElement("exam-form").setText("室外体育馆");; // 此时只是在内存中构建了这个DOM 我们还需将他写入到xml文件离去 //9. 将转换流转换成Writer对象 参数一:文件输出流对象 参数二:编码格式 Writer writer = new OutputStreamWriter(new FileOutputStream(file),"UTF-8"); //10.将document对象写入Writer对象中 并关闭流 document.write(writer); writer.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { PlanWriter planWriter = new PlanWriter(); planWriter.writeXml(); } }
1回答
同学你好,代码完成的不错,注释也是正确的,但是有一个小建议,PlanWriter类中,方式二的代码后面添加一个结束分号就可以啦~如果添加两个,则第二个分号将会执行一个空语句,是没有实际意义的~
如:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题