-
大小: 2KB文件類型: .rar金幣: 2下載: 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
評論
共有 條評論