-
大小: 2KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-04
- 语言: Java
- 标签:
资源简介
使用java解析XML文件,解析完之后将解析结果导入mysql数据库中
代码片段和文件信息
package xml;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import java.sql.*;
public class xmlParse implements FilenameFilter{
Connection connect =null;
Statement stmt =null;
public xmlParse()throws Exception{
Class.forName(“com.mysql.jdbc.Driver“); //加载驱动程序
//System.out.println(“Success loading Mysql Driver!“);
//建立数据库连接
connect = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/xmlparse““root““123116“);
stmt = connect.createStatement(); //获取Statement对象
//System.out.println(“Success connect Mysql server!“);
}
public boolean accept(File dir String filename){
return (filename.endsWith(“newsML.xml“));
}
public void writeToMysql(String []nameString []contentString dirString filenameint wordsamount){
try{
// 处理插入语句格式
String colsName=““value=““;
int n=name.length;
for(int i=0;i {
colsName=colsName+name[i]+““;
value=value+“\‘“+content[i]+“\‘“+““;
}
value+=“\‘“+dir+“\‘\‘“+filename+“\‘“+wordsamount;
colsName+=“dirfilenamewordsamount“;
String str=“INSERT INTO xml(“+colsName+“) values(“+value+“)“;
System.out.println(str);
stmt.executeUpdate(str); //提交数据更新
}
catch(Exception e){
System.out.println(e+“Error loading Mysql Driver!“);
}
}
public void parse(String dir String []filenames){
try{
for(int j=0;j File f=new File(dirfilenames[j]);
FileInputStream fin=new FileInputStream(f); //创建输入流
//获取DOM解析器
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(fin);
//根节点
Element root=document.getDocumentElement();
String rootName=root.getNodeName();
System.out.println(“xml文件根节点的名字:“+rootName);
//子节点
NodeList nodeList=root.getChildNodes();
int size=0;
//统计属性个数
for(int k=0;k Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE)
size++;
}
System.out.println(size); //输出属性个数
String attNames[]=new String [size]; //属性名
String attValues[]=new String[size]; //属性值
int wordsAmount=0;
for(int i=0m=0;i Node node=nodeList.item(i);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elementNode=(Element)node;
String name=elementNode.getNodeName().trim();
attNames[m]=name.trim();
//对text内容做处理
if(name.equals(“text“)){ //||name.equals(“metadata“)
NodeList nl=elementNode.getChildNodes();
attValues[m]=““;
for(int r=0;r if(nl.item(r).getNodeType()==Node.ELEMENT_NODE)
attValues[m]+=nl.item(r).getTextContent().trim();
}
wordsAmount=attValues[m].spli
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3954 2012-04-03 17:19 xm
----------- --------- ---------- ----- ----
3954 1
评论
共有 条评论