问题描述
在一个文件里有2个XML文件,我想把这里面的2个xml给剥离出来,每一个用jdom来解析!现在的问题是:无法准确的将2个xml分开放到不同的String中去!!例如String xml1={xml1};String xml2={XML2};给一个算法或者思路也行!我String.split截取的效果不是很好!可以不用考虑性能问题,只要时机复杂度不大就行!谢谢!---------------------------------------------------------------<!----><queryhead><trnid>d1</trnid><type>n</type> <status>0 <message>ok</message> </status><pagecount>11</pagecount><recordperpage>n</recordperpage></queryhead><!----><queryresult><trnid>d1</trnid><type>n</type> <status>0 <message>ok</message> </status><pagenum>n</pagenum><recordperpage>n</recordperpage><result><balrec> <account> <acntno>1234567890123456789</acntno> <acntname>XX集团财务公司</acntname> </account> <balance>30000000.33</balance> </balrec><balrec> <account> <acntno>1234567890123456789</acntno> <acntname>XX集团财务公司</acntname> </account> <balance>30000000.33</balance> </balrec></reuslt></queryresult>----------------------------------------------------------------------------------------
解决方案
不考虑性能的话可以这样做:String myXmlFileString = "<?xml version = '1.0' encoding = "GBK"?>"+ "<queryhead>" + "</queryhead>"+ "<?xml version = "1.0" encoding = "GBK"?>"+"<queryresult>" + "</queryresult> ";StringBuilder sb = new StringBuilder(myXmlFileString);//确定两个xml文件的分割索引int flag = sb.lastIndexOf("<?xml");String myFirstXml = sb.substring(0, flag);String myLastXml = sb.substring(flag, myXmlFileString.length());System.out.println(myFirstXml);System.out.println(myLastXml);
解决方案二:
去掉第二个<?xml version = "1.0" encoding = "GBK"?> 改成一个可以解析的xml文件,然后用dom4j遍历queryhead节点,每个节点生成字符串再解析