
XmlDocument xml=new XmlDocument()
//导入指定xml文件
xml.Load(path)
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"))
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root")
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes
//判断该节点下是否有子节点
root.HasChildNodes
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("/Root/News")
//生成一个新节点
XmlElement node=xml.CreateElement("News")
//将节点加到指定节点下,作为其子节点
root.AppendChild(node)
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes[i])
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111")
//为指定节点添加子节点
root.AppendChild(node)
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value
//获取指定节点中的文本
string content=node.InnerText
//保存XML文件
string path=Server.MapPath("~/file/bookstore.xml")
xml.Save(path)
我自己前段时间写的有事就问数据库建了一个表study
id student class teacher age 这5个字段
package com.sql.xml
import java.io.File
import java.io.FileOutputStream
import java.io.FileWriter
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement
import org.dom4j.Document
import org.dom4j.DocumentHelper
import org.dom4j.Element
import org.dom4j.io.OutputFormat
import org.dom4j.io.XMLWriter
//导出数据存入XML
public class ReadDb {
public static void main(String args[]){
//连接数据库
try{
//数据库连接
String url="jdbc:oracle:thin:@10.0.3.18:1521:hxtest18"
String classforname="oracle.jdbc.driver.OracleDriver"
String usename="zhiyong"
String password="password"
Class.forName(classforname)
Connection con=DriverManager.getConnection(url,usename,password)
Statement sta=con.createStatement()
//查询数据
ResultSet result=sta.executeQuery(
"SELECT * FROM study")
//创建根节点
Document document=DocumentHelper.createDocument()
Element studyInfo=DocumentHelper.createElement("studyInfo")
document.setRootElement(studyInfo)
//Element studyInfo=document.addElement("studyInfo")
//当有值时查询
while(result.next()){
//增加每个节点
Element study=studyInfo.addElement("study")
Element id=study.addElement("id")
Element student=study.addElement("student")
Element classe=study.addElement("class")
Element teacher=study.addElement("teacher")
Element age=study.addElement("age")
//将数据库值通过SETTEXT为XML值
id.setText(result.getString("id"))
student.setText(result.getString("student"))
//System.out.println(id.getText())
classe.setText(result.getString("class"))
teacher.setText(result.getString("teacher"))
age.setText(result.getString("age"))
}
//将树导出到文件中:两种输出方法
XMLWriter write=new XMLWriter(new FileOutputStream(new File("studyInfo.xml")))
write.write(document)
write.close()
}catch(Exception e){
e.printStackTrace()
}
}
}
插入数据库,改了几个条件
bookstore.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book has="100">
<bname>数据库</bname>
<price>33.80元</price>
<date>2009-10-1</date>
</book>
<book has="95">
<bname>三国演义</bname>
<price>40.00元</price>
<date>2005-1-7</date>
</book>
<book has="86">
<bname>西游记</bname>
<price>30.00元</price>
<date>2004-3-8</date>
</book>
<cd have="15">
<id>1</id>
<cname>beyound</cname>
<owner>小黎</owner>
</cd>
<cd have="17">
<id>2</id>
<cname>kugou</cname>
<owner>小强</owner>
</cd>
</bookstore>
解析如下
package com.sql.xml
import java.io.File
import java.io.FileWriter
import java.sql.Connection
import java.sql.DriverManager
import java.util.Iterator
import org.dom4j.Attribute
import org.dom4j.Document
import org.dom4j.Element
import org.dom4j.DocumentException
import org.dom4j.io.SAXReader
import org.dom4j.io.XMLWriter
import org.dom4j.io.OutputFormat
//XML的解析与转换后存入数据库
public class Fenkai {
public static void main(String args[]){
String sql,BNAME=null,PRICE=null,DAT=null//定义数据库表段
String sqlatt,CNAME=null,ID=null,OWNER=null
//读取xml文件
SAXReader reader=new SAXReader()
File file=new File("bookstore.xml")
try{
//数据库连接
String url="jdbc:oracle:thin:@10.0.3.18:1521:hxtest18"
String classforname="oracle.jdbc.driver.OracleDriver"
String usename="zhiyong"
String password="password"
Class.forName(classforname)
Connection con=DriverManager.getConnection(url,usename,password)
//解析xml文件
Document document=reader.read(file)
Element root=document.getRootElement()//根节点
System.out.println("输出根节点:"+root.getName())
//下面用迭代得到子节点和孙节点
for(Iterator child=root.elementIterator()child.hasNext()){
Element childEle=(Element)child.next()
System.out.println("子:"+childEle.getName())
System.out.println("孙:")
for(Iterator grand=childEle.elementIterator()grand.hasNext()){
Element grandEle=(Element)grand.next()
System.out.println(grandEle.getName()+"值:"+grandEle.getText())
//转换数据
while(grandEle.getText().equals("数据库")){
grandEle.setText("001")
}
while(grandEle.getText().equals("三国演义")){
grandEle.setText("002")
}
while(grandEle.getText().equals("西游记")){
grandEle.setText("003")
}
while(grandEle.getText().equals("beyound")){
grandEle.setText("004")
}
while(grandEle.getText().equals("kugou")){
grandEle.setText("005")
}
}}
//得到各节点值插入数据库
for(Iterator it= root.elementIterator("book")it.hasNext()){
Element ch=(Element)it.next()
BNAME=ch.elementText("bname")
PRICE=ch.elementText("price")
DAT=ch.elementText("date")
// while(childEle.getName().equals("cd")){}
sql="insert into book values('"+BNAME+"','" +PRICE
+"','"+DAT+"')"
//sql="select * from book"//加入本语句运行不改变数据表
//执行
con.createStatement().executeUpdate(sql)}
for(Iterator itt= root.elementIterator("cd")itt.hasNext()){
Element cht=(Element)itt.next()
CNAME=cht.elementText("cname")
ID=cht.elementText("id")
OWNER=cht.elementText("owner")
sqlatt="insert into cd values('"+CNAME+"','" +ID
+"','"+OWNER+"')"
//sqlatt="select * from cd"
con.createStatement().executeUpdate(sqlatt)}
//将转换后文件存入txt
OutputFormat format=OutputFormat.createPrettyPrint()
format.setEncoding("gbk")
XMLWriter writer = new XMLWriter( new FileWriter(new File("bookchange.txt")),format)
writer.write(document)
writer.close()
System.out.println(document.asXML())//打印改变后的树
}catch(Exception e){
e.printStackTrace()
System.out.println("有错啊!")
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)