JavaWeb-ADV Chapter 1 the XML

作者:Lovingshu
目标:[能够采用自己的方式来解析XML文档]
内容:
	1.解析XML文档的方法,其实这里有很多种方法,我这里就只采用其中的一种比较简单的,高效率的Dom4j
	(1)导入Dom4j类库是很有必要的(java中是不是叫类库?反正就是lib文件嘛)
	(2)导入后我们就可用里面的一些类和方法了
	2.开始解析文档
	
	/**
	 * 读XML文件
	 */
	public void resovingXML(){
		//创建解析器
		SAXReader reader=new SAXReader();//导入org.dom4j.io.SAXReader
		//得到文档对象,导入org.dom4j.Document,并且要处理异常
		try {
			Document doc=reader.read(TestIT.class.getClassLoader().getResource("Paht"));
			//得到根节点import org.dom4j.Element;
			Element root=doc.getRootElement();
			//得到所有节点的集合import java.util.List;
			List<Element> list_em=root.elements();
			for(Element e : list_em){
				//获取属性
				String attrOne=e.attributeValue("[属性名]");
				//获取值
				String conOne=e.elementText("[元素标签名称]");
				//....
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
	3.开始写入文档
	/**
	 * 写XML文件
	 */
	public void writeXML(){
		//得到文档对象
		Document doc=DocumentHelper.createDocument();
		//创建根节点
		Element root=doc.addElement("class");
		//采用循环添加值
		for(int i=0;i<100;i++){
			//设置第二级节点,并把二级节点加入到根节点中
			Element student=root.addElement("student");
			//设置二级节点的属性
			student.addAttribute("stuNo",(1000+i)+"");
			//添加二级节点的子节点,并且设置值
			student.addElement("stuName").setText("MrNo"+i);
			student.addElement("stuAge").setText(i+"");
			//....
		}
		//设置格式化器import org.dom4j.io.OutputFormat;
		OutputFormat format=new OutputFormat();
		//设置属性
		format.setEncoding("utf-8");
		format.setIndentSize(4);
		format.setNewlines(true);
		//得到写入器
		//在写入之前呢我自己想了一个方法来得到xml文件的路径并且也不会报错!
		//还好java有着跨平台的优势,所以这种获取路径的方式也就比较先进了!
		String url=TestIT.class.getClassLoader().getResource("[文件名]").toString();
		url=url.replaceAll("%20", " ").substring(url.indexOf("/")+1);//处理异常
		try {
			XMLWriter writer=new XMLWriter(new FileOutputStream(url), format);
			//写入
			writer.write(doc);
			//关闭流
			writer.close();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
--------------------------------------------lovingshu's Forever 2011.09.06---------------------------------------------------------

你可能感兴趣的:(java,xml,String,url,文档,import)