<?xml version="1.0" encoding="utf-8"?> <root> <Sentences> <DeptKind> <name>1</name> <PartKind> <name>1.1</name> <SickKind> <name>1.1.1</name> <Sentence> <Report><![CDATA[ 1.1.1.1内容]]></Report> <Conclusion><![CDATA[1.1.1.2内容]]></Conclusion> </Sentence> </SickKind> </PartKind> </DeptKind> <DeptKind> <name>2</name> <PartKind> <name>2.1</name> <SickKind> <name>2.1.1</name> <Sentence> <Report><![CDATA[ 2.1.1.1内容]]></Report> <Conclusion><![CDATA[2.1.1.2内容]]></Conclusion> </Sentence> </SickKind> </PartKind> </DeptKind> </Sentences> </root>
类似格式 这段xml解析。
public static void main(String[] args) throws Exception{ //插入数据的sql语句 String sql="insert into template_tab(name, name2, name, Report,Conclusion) values (?, ?, ?, ?, ?)"; Connection conn=null; PreparedStatement pstmt=null; try{ Class.forName("com.mysql.jdbc.Driver"); System.out.println("测试通过"); conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/pacs","root","root"); pstmt=conn.prepareStatement(sql); //读取xml文件 Document doc=new SAXReader().read(new File("D:/template2.xml")); //选择xml文件的节点 List itemList=doc.selectNodes("root/Sentences/DeptKind"); //遍历读出的xml中的节点 for(Iterator iter=itemList.iterator();iter.hasNext();){ Element el=(Element)iter.next(); //读取节点内容 String name=el.elementText("name"); List PartKind = el.elements("PartKind"); StringBuffer sbString=new StringBuffer(); //Element turnosElt=(Element)iter.next(); String name2 = ((Element) PartKind).elementText("name"); List SickKind = el.elements("SickKind"); Element turnosElt2=(Element)iter.next(); String name3 = turnosElt2.elementText("name"); //sbString.append(name3/* + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo*/); //} List Sentence = el.elements("Sentence"); for(Iterator iter1=Sentence.iterator();iter1.hasNext();){ Element turnosElt3=(Element)iter1.next(); String Report = turnosElt3.elementText("Report"); //String Conclusion = PartKind.elementText("Conclusion"); //sbString.append(Report + "," + Conclusion ); } //为sql语句赋值 pstmt.setString(1, name); pstmt.setString(2, PartKind.toString()); pstmt.setString(3, SickKind.toString()); pstmt.setString(4, Sentence.toString()); pstmt.setString(5,sbString.toString()); pstmt.addBatch(); } pstmt.executeBatch(); System.out.print("将XML导入数据库成功"); }catch(Exception e){ e.printStackTrace(); }finally{ //DbUtil.close(pstmt); //.close(conn); //DbUtil.CloseDB(); //DbUtil.OpenDB(); conn.close(); } }
老是取不到下一个节点里面的 还报错 求修改
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
哥们,你参考一下http://blog.sina.com.cn/s/blog_03c54d1001012srj.html