有域名之后怎么自己做网站,东软集团建设网站,asp网站首页,更合网站开发最近学习Java#xff0c;在处理XML文档的时候#xff0c;查阅相关资料#xff0c;发现了DOM4J这个jre库#xff0c;相对C#的XML处理来说#xff0c;功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.util.Iterator;
import java.io.BufferedReader;
i…最近学习Java在处理XML文档的时候查阅相关资料发现了DOM4J这个jre库相对C#的XML处理来说功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.util.Iterator;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import org.dom4j.*;
import org.dom4j.io.SAXReader;public class XmlRead {static StringBuilder sBuilder new StringBuilder();public static void main(String[] args) throws IOException {BufferedReader bReader new BufferedReader(new InputStreamReader(System.in));String path null;System.out.println(请输入XML文件的绝对路径以及文件名:\n);path bReader.readLine();sBuilder.append(开始输出XML文件内容\n);Document document null;try {document read(path);sBuilder.append(path \n);} catch (MalformedURLException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();}Element root getRootElement(document);if (root null) {System.out.print(没有获取到root节点);return;}// 获取XML文档的编码格式String encString document.getXMLEncoding();sBuilder.append(?xml version\1.0\ encoding\ encString \\n);sBuilder.append(elementText(root, attText(root), 0));System.out.println(getIterator(root, 0) / root.getName() );}/*** 递归节点* * description* param element* param lvl* 层级* return*/private static String getIterator(Element element, int lvl) {lvl 1;for (Iterator i element.elementIterator(); i.hasNext();) {Element e (Element) i.next();sBuilder.append(elementText(e, attText(e), lvl));getIterator(e, lvl);int count e.nodeCount();if (count 0) {for (int j 0; j lvl; j) {sBuilder.append( );}}sBuilder.append(/ e.getName() \n);}return sBuilder.toString();}/*** 获取当前节点的属性的值的字符串* * description* param element* 当前节点* return*/private static String attText(Element element) {String str ;for (int i 0; i element.attributeCount(); i) {Attribute attribute element.attribute(i);str attribute.getName() \ attribute.getValue() \ ;}return str;}/*** 获取当前Element的文本值* * description* param element* 当前Element节点* param text* 属性值* param lvl* 层级* return*/private static String elementText(Element element, String text, int lvl) {String str ;for (int i 0; i lvl; i) {str ;}str element.getName();if (text ! null text ! ) {str text;}//由于dom4j里面没有 hasChild这个属性或者方法所以要用nodeCount()这个方法来判断时候还有子节点int count element.nodeCount();if (count 0) {return str ;}return str \n;}/*** * description 读取XML文件* param file* XML文件路径包含文件名* return Document 文档* throws MalformedURLException* throws DocumentException*/public static Document read(String file) throws MalformedURLException,DocumentException {SAXReader reader new SAXReader();Document document reader.read(new File(file));return document;}/*** 获取Document文档的root节点* * param document* return*/public static Element getRootElement(Document document) {return document.getRootElement();}} 转载于:https://www.cnblogs.com/BBHor/p/3309744.html