麻烦老师帮我检查一下代码还有注释是否有误

来源: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回答

好帮手慕酷酷

2019-10-31

同学你好,代码完成的不错,注释也是正确的,但是有一个小建议,PlanWriter类中,方式二的代码后面添加一个结束分号就可以啦~如果添加两个,则第二个分号将会执行一个空语句,是没有实际意义的~

如:

http://img.mukewang.com/climg/5dba74f20960a9ad05690056.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

1
hia_蛙
h 按太快了 ?
h019-10-31
共1条回复

0 学习 · 9666 问题

查看课程