XML文件解析
来源:互联网 发布:w7电脑找不到wifi网络 编辑:程序博客网 时间:2024/05/18 02:34
//解析xml文件public static void analyseXmlFile(String filepath){System.out.println("************ ANALYSE START ************");System.out.println(filepath);System.out.println("***************************************");File xmlfile = new File(filepath);if(xmlfile.exists()){Document doc = XmlSaxReaderTest.getStringXMLDoc(xmlfile);if(doc!=null){Element root = doc.getDocumentElement();NodeList list = root==null?null:root.getElementsByTagName("element");if(list!=null){int len = list.getLength();if(len>0){for(int i=0;i<len;i++){Element e = (Element)list.item(i);// dealWithElement(e, i);//解析并插入到数据库printElementContent(e);//纯打印解析内容至控制台}System.out.println("********* "+filepath.substring(filepath.lastIndexOf('\\')+1)+" 总共完成 "+len+" 条记录*********");} }}} else {System.out.println("文件不存在--异常!");}System.out.println("************* ANALYSE END *************");}//打印解析内容public static void printElementContent(Element e){String eid = e.getAttribute("id");Element title = (Element)e.getElementsByTagName("title").item(0);Element subject = (Element)e.getElementsByTagName("subject").item(0);Element content = (Element)e.getElementsByTagName("content").item(0);System.out.println("element:id="+eid+"******************************************");System.err.println(title.getNodeName()+":"+title.getAttribute("descripton")+":"+title.getFirstChild().getNodeValue());System.err.println(subject.getNodeName()+":"+subject.getAttribute("descripton")+":"+subject.getFirstChild().getNodeValue());NodeList attrs = e.getElementsByTagName("attr");if(attrs!=null && attrs.getLength()>0){int attr_len = attrs.getLength();for(int j=0;j<attr_len;j++){Element attr = (Element)attrs.item(j);System.err.println(attr.getAttribute("name")+":"+attr.getAttribute("description")+":"+printNodeValue(attr.getFirstChild()));}}System.err.println(content.getNodeName()+":"+content.getAttribute("description")+":"+printNodeValue(content.getFirstChild()));//替换正文区的图片地址String contentValue = printNodeValue(content.getFirstChild());Pattern p = Pattern.compile("<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>");Matcher m = p.matcher(contentValue.toLowerCase());while (m.find()) {String srcpath = m.group(1);String forepath = srcpath.substring(0, srcpath.lastIndexOf('/')+1);contentValue = contentValue.replace(forepath, "");// System.out.println(m.group(1));}//处理正文内部文件链接//如:<a href="/n2669700/n5326028/n5326101/n5328096/n5328138/n6046427.files/n6046428.doc" //name="attachment" target="_blank">B超中标.doc</a>Pattern p1 = Pattern.compile("<a\\s.*?href=\"([^\"]+)\"[^>]*>(.*?)</a>"); Matcher m1 = p1.matcher(contentValue);String attaSaveUrl = "C:/IMPORT_ATTA/" + DateTools.formatDate(new Date(), "yyyyMMdd") + "/";System.out.println("*****正文附件链接*****");while(m1.find()){String srcstr = m1.group(1);String url = "servlet/FileDownload?filepath="+attaSaveUrl+srcstr.substring(srcstr.lastIndexOf('/')+1)+"&dispname="+m1.group(2);contentValue = contentValue.replace(srcstr, url);System.out.println(eid+":"+srcstr+" --> "+url);// System.out.println("("+eid+"):"+m1.group(1)+" --> "+m1.group(2));}System.out.println(contentValue);//图片区System.out.println("*****图片区*****");Element images = (Element)e.getElementsByTagName("images").item(0);NodeList imglist = images.getElementsByTagName("image");if(imglist!=null && imglist.getLength()>0){for(int j=0;j<imglist.getLength();j++){System.out.print(j+1+":");Element tmp = (Element)imglist.item(j);if(tmp!=null){System.out.print(tmp.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());}System.out.println();}} else {System.out.println("("+eid+")没有图片文件!");}//附件区System.out.println("*****附件区*****");Element attas = (Element)e.getElementsByTagName("appendixes").item(0);NodeList attalist = attas.getElementsByTagName("appendix");if(attalist!=null && attalist.getLength()>0){for(int j=0;j<attalist.getLength();j++){System.out.print(j+1+":");Element tmp = (Element)attalist.item(j);if(tmp!=null){System.out.print(((Element)tmp.getElementsByTagName("filename").item(0)).getAttribute("value"));}System.out.println();}} else {System.out.println("("+eid+")没有附件文件!");}}//打印节点的内容 加入null值判断public static String printNodeValue(Node node){return node!=null?node.getNodeValue():"null";}
****************************************************************************************************************
xml文件结构:
****************************************************************************************************************
<?xml version="1.0" encoding="utf-8"?><elements> <requestman><![CDATA[172.16.200.7]]></requestman> <element id="5715329"> <title descripton="文章标题"><![CDATA[日报社领导信息]]></title> <subject descripton="栏目"><![CDATA[市政府信息公开目录 > 事业单位及办事机构 > 市日报社 > 政府信息公开目录 > 组织机构 > 领导信息]]></subject> <attributes description="属性区"> <attr description="文章标题" name="title"><![CDATA[日报社领导信息]]></attr> <attr description="文章状态" name="status"><![CDATA[审核通过]]></attr> <attr description="内容重要性" name="level"><![CDATA[0]]></attr> <attr description="作者" name="createBy"><![CDATA[whsrbs]]></attr> <attr description="关键字" name="keywords"><![CDATA[]]></attr> <attr description="摘要" name="description"><![CDATA[]]></attr> <attr description="发布流水号" name="publishId"><![CDATA[5716062]]></attr> <attr description="评论要求" name="criticaltype"><![CDATA[0]]></attr> <attr description="栏目" name="parentDn"><![CDATA[dc=cms,ou=subject,cn=n2669700,cn=n4022495,cn=n4050903,cn=n4050904,cn=n4050905,cn=n4050907]]></attr> <attr description="栏目" name="subject"><![CDATA[市政府信息公开目录 > 事业单位及办事机构 > 市日报社 > 政府信息公开目录 > 组织机构 > 领导信息]]></attr> <attr description="创建时间" name="creatTime"><![CDATA[20110705213511]]></attr> <attr description="发布时间" name="enableTime"><![CDATA[20110705213511]]></attr> <attr description="修改时间" name="modifyTime"><![CDATA[20110705220622]]></attr> <attr description="自动停止发布时间" name="disableTime"><![CDATA[20541231010101]]></attr> <attr description=" 最后接触时间" name="touchTime"><![CDATA[]]></attr> <attr description="文章来源" name="asource"/> <attr description="所属部门" name="department"><![CDATA[]]></attr> <attr description="正文字数" name="wordNum"><![CDATA[4394]]></attr> <attr description="标题图片个数" name="namePicNum"><![CDATA[0]]></attr> <attr description="图片数" name="imageNum"><![CDATA[6]]></attr> <attr description="附件数" name="appendixNum"><![CDATA[0]]></attr> <attr description="索引号" name="索引号"><![CDATA[460240064/2011-00008]]></attr> <attr description="副索引号" name="副索引号"><![CDATA[KAO-501-12-0002000-2011-016]]></attr> <attr description="名称" name="名称"><![CDATA[日报社领导信息]]></attr> <attr description="生成日期" name="生成日期"><![CDATA[2011-07-05]]></attr> <attr description="文号" name="文号"/> <attr description="发布机构" name="发布机构"><![CDATA[WHS0050]]></attr> <attr description="主题分类" name="主题分类"><![CDATA[12C]]></attr> <attr description="体裁分类" name="体裁分类"><![CDATA[themecat]]></attr> <attr description="组配分类" name="组配分类"><![CDATA[svobjcat]]></attr> <attr description="信息关键词" name="信息关键词"/> <attr description="著录日期" name="著录日期"><![CDATA[2011-07-05]]></attr> <attr description="内容概述" name="内容概述"><![CDATA[日报社领导信息]]></attr> <attr description="生效日期" name="生效日期"><![CDATA[2011-07-05]]></attr> <attr description="废止日期" name="废止日期"><![CDATA[2011-07-05]]></attr> <attr description="相关信息" name="相关信息"/> <attr description="主题词" name="主题词"/> <attr description="语种" name="语种"/> <attr description="信息格式" name="信息格式"><![CDATA[HTML]]></attr> <attr description="在线链接地址" name="在线链接地址"/> <attr description="在线咨询" name="在线咨询"/> <attr description="状态查询" name="状态查询"/> <attr description="在线申报" name="在线申报"/> </attributes> <content description="正文区"><![CDATA[<p> </p><table align="center" bgcolor="#bebebe" border="0" cellpadding="2" cellspacing="1" width="710"><tbody><tr><td align="center" bgcolor="#f0f0f0" colspan="5" height="22"><strong>领导简历</strong></td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22" width="85"><strong>姓 名</strong></td><td align="center" bgcolor="#ffffff" width="200">XXXXX</td><td align="center" bgcolor="#f0f0f0" width="85"><strong>性 别</strong></td><td align="center" bgcolor="#ffffff" width="200">男</td><td align="center" bgcolor="#ffffff" rowspan="5" width="130"><p align="center"><img alt="" border="0" src="/n2669700/n4022495/n4050903/n4050904/n4050905/n4050907/n5715329.files/n5715941_small.jpg" /></p></td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22"><strong>出生年月</strong></td><td align="center" bgcolor="#ffffff">1961年9月</td><td align="center" bgcolor="#f0f0f0" width="85"><strong>民 族</strong></td><td align="center" bgcolor="#ffffff">汉族</td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22" valign="top"><strong>籍 贯</strong></td><td align="left" bgcolor="#ffffff" colspan="3" valign="top">XXXXX</td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22"><strong>职 务</strong></td><td align="left" bgcolor="#ffffff" colspan="3">党委书记、社长</td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22" valign="top"><strong>学历背景</strong></td><td align="left" bgcolor="#ffffff" colspan="3" valign="top"><p>研究生学历,历史学学士学位</p></td></tr><tr><td align="center" bgcolor="#f0f0f0" height="22" valign="top"><strong>工作经历</strong></td><td align="left" bgcolor="#ffffff" colspan="4" valign="top"><p align="left">调入日报社任党委书记、社长。</p></td></tr><tr><td align="center" bgcolor="#f0f0f0" colspan="5" height="22" valign="top"><strong>工作分工</strong></td></tr><tr><td align="left" bgcolor="#ffffff" colspan="5" height="22" valign="top"><table align="left" border="0" cellpadding="5" cellspacing="0" width="95%"><tbody><tr><td>主持日报社全面工作。</td></tr></tbody></table></td></tr></tbody></table><tr><td colspan="4"><!-- 红头文件结束 --> <div style="width: 100%; overflow: auto; margin: 0 auto; overflow-y: hidden;"><p style="margin-left: 80px"><a href="/n2669700/n5326028/n5326101/n5328096/n5328138/n6046427.files/n6046428.doc" name="attachment" target="_blank">B超中标.doc</a></p> </div></td></tr></tbody></table>]]></content> <images description="图片区"> <image> <description><![CDATA[n5715941_small.jpg]]></description> <filename value="n5715941_small.jpg"/> <type value="jpg"/> </image> <image> <description><![CDATA[n5715970_small.jpg]]></description> <filename value="n5715970_small.jpg"/> <type value="jpg"/> </image> </images> <appendixes description="附件区"><appendix> <displayname><![CDATA[n5593792]]></displayname> <filename value="n5593792.doc"/> <type value="doc"/> </appendix> <appendix> <displayname><![CDATA[n5593793]]></displayname> <filename value="n5593793.xls"/> <type value="xls"/> </appendix> </appendixes> </element></elements>
- XML----SAX解析XML文件
- XML---DOM4J解析XML文件
- XML DOM解析XML文件
- XML SAX解析xml文件
- XML jDOM解析XML文件
- XML DOM4J解析XML文件
- 解析XML文件___SAX解析
- java 解析 xml文件
- XML文件解析
- XML文件解析
- JstL解析XML文件
- xml文件解析办法
- DOM解析XML文件
- XML文件解析心得
- xml文件解析-SAX
- xml文件解析-DOM
- xml文件解析-JDOM
- xml文件解析-DOM4J
- .NET常用优化性能的方法
- linux中导出导入数据库等操作
- linux expect 详解
- 备用笔记
- Web复习和cookie
- XML文件解析
- 《java网络的基本知识》
- asp.net常用代码收集
- 2011年的11个网页设计趋势热点
- url编码方法比较
- fedora 10安装
- POJ 2406 KMP求字符串循环节
- iframe 父窗口和子窗口相互调用
- Cookie