原xml 文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--<!DOCTYPE tians SYSTEM "tianHello.dtd">
-->
<!DOCTYPE tians[
<!ELEMENT tians (tian*)>
<!ELEMENT tian (class+,method+)>
<!ATTLIST tian id ID #IMPLIED>
<!ELEMENT class (#PCDATA)>
<!ELEMENT method (field*)>
<!ATTLIST method name CDATA #REQUIRED>
<!ELEMENT field (#PCDATA)>
<!ATTLIST field type CDATA #REQUIRED>
<!ATTLIST field name CDATA #REQUIRED>
]>
<tians>
<tian>
<class>tian.busi.Manager.TianHello</class>
<method name="sayHello">
<field type="java.lang.String" name="str"></field>
</method>
</tian>
</tians>
java 类
package tian.core.configFactory;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
public class ReadXMl {
@Test
public void ReadXml() throws Exception{
SAXReader reader = new SAXReader();
Document doc=reader.read(new File("D:\\lesowork_2\\XMLRead\\resource\\tian\\busiXml\\tianHello.xml"));
Element root =doc.getRootElement();
Iterator iterator = root.elementIterator("tian");
while(iterator.hasNext()){
Element element=(Element) iterator.next();
String name=element.getName();
String id=element.attributeValue("id");
//节点 名称
System.out.println("name >>> "+name);
//节点属性 id 值
System.out.println("id >>>"+id);
long ID=0l;
if(null==id){
ID=Long.valueOf(new Date().getTime()+UUID.randomUUID().toString().substring(0, 4));
}
Iterator clss = element.elementIterator("class");
if(!clss.hasNext()){
throw new Exception("xml文件中找不到class");
}
Element cls=(Element) clss.next();
String clsName=cls.getName();
String value=cls.getTextTrim();
System.out.println("clsName >>"+clsName);
System.out.println("value >>"+value);
Iterator methods = element.elementIterator("method");
if(!methods.hasNext()){
throw new Exception("xml文件中找不到method");
}
Element method=(Element) methods.next();
String methodName=method.getName();
String nameValue=method.attributeValue("name");
System.out.println("methodName >>"+methodName);
System.out.println("nameValue >>"+nameValue);
Map<String,String>fieldMap=new HashMap<String,String>();
Iterator fields = method.elementIterator("field");
if(fields.hasNext()){
while(fields.hasNext()){
Element field=(Element) fields.next();
String fieldType=field.attributeValue("type");
String fieldName=field.attributeValue("name");
fieldMap.put(fieldName, fieldType);
}
}
}
}
}