您的位置:首页 > 其它

对xml的处理_Dom4j入门六

2012-10-19 16:32 239 查看
以下介绍Dom4j的环境是:windowsXP、eclipse3.5.0、jdk1.6、Dom4j1.6.1.jar

Dom4j1.6.1.jar架包可以在本人的资源中下载,欢迎下载使用

需求:通过xml的最底层标签名称创建表,并将xml标签中的内容写入到数据库中

现在主要是:获取创建表的语句和插入数据的语句

public static void analyticalXML(String xmlpath){

SAXReader readerxml=new SAXReader();

Document doc=null;

try {//读取一个形式良好的xml文件形成一个document对象

doc=readerxml.read(new File(xmlpath));//"C:/doc.xml"

Element root=doc.getRootElement();//获取该对象的根节点

getchildElement(doc,root);

} catch (DocumentException e) {

e.printStackTrace();

}

}

//递归获取子节点

public static void getchildElement(Document doc,Element elementa){

String createsql = "create table student(";

String insertsql = "insert into student(";

String valuessql = "values(";

//所有最底层的标签(建表字段)都在一个标签下面

for(Iterator it=elementa.elementIterator();it.hasNext();){

Element child=(Element) it.next();//获取子节点

List attributes = new ArrayList();

attributes = child.attributes();

Iterator itchild = child.elementIterator();

if(!itchild.hasNext()&&attributes.size()<1){//是需要的最底层节点

createsql += child.getName() + " varchar(10) ,";

insertsql += child.getName() + ",";

if(child.getText().length()>0){

valuessql += child.getText() + ",";

}else{

valuessql += "''" + ",";

}

}else {

getchildElement(doc,child);//不是最底层节点,则递归获取下一层子节点

}

}

createsql = createsql.substring(0,createsql.length()-1) + ")";

insertsql = insertsql.substring(0,insertsql.length()-1) + ")";

valuessql = valuessql.substring(0,valuessql.length()-1) + ")";

if(createsql.length()>50){//如果建表语句createsql是完整的,那么其长度肯定大于50

System.out.println();

System.out.println(createsql);//打印建表语句

System.out.println(insertsql + valuessql);//打印插入语句

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: