java怎么把解析的xml数据添加到数据库中
8个回答
展开全部
不说废话直接上代码,下面是要读取的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<PERSON>
<NAME>a1</NAME>
<ADDRESS>b1</ADDRESS>
<TEL>c1</TEL>
<FAX>d1</FAX>
<EMAIL>e1</EMAIL>
</PERSON>
下面是读取xml文件的java代码,在数据库中建一张和xml文件字段对应的表,将读取的数据插入到表中。如果数据插入不会,欢迎继续追问:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Test {
public static void main(String[] args) throws Exception{
System.out.println("22");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new File("candidate.xml"));
NodeList list = document.getElementsByTagName("PERSON");
for(int i = 0; i < list.getLength(); i++)
{
Element element = (Element)list.item(i);
String content = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
content = element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();
content = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();
content = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();
content = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();
}
}
}
展开全部
java一种简单的解析xml方法是用DOM进行解析, dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。具体使用方法可以参照如下链接
http://blog.csdn.net/redarmy_chen/article/details/12969219
解析出来添加到数据库就不用说了,用什么框架肯定有相应操作数据库的方法。
http://blog.csdn.net/redarmy_chen/article/details/12969219
解析出来添加到数据库就不用说了,用什么框架肯定有相应操作数据库的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java解析xml可以使用相应的jar包工具。如xstream,可以把xml类型的字符串映射为对应的对象,然后入库就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主你可以 用 SAXParser,Document 解析XML 然后把得到的数据拼成sql语句插入 数据库就可以了
例如:public class ReaderXML extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {
//qName节点名
//循环节点属性
String sql = null;
for (int i = 0; i < attributes.getLength(); i++){
attributes.getQName(i);//属性名
attributes.getValue(i);//属性值
sql = "insert into .....";//拼成sql 进行插入
//.....
}
}
}
//调用
ReaderXML r = new ReaderXML(); SAXParserFactory.newInstance().newSAXParser().parse(getClass().getResourceAsStream("data.xml"), r);
例如:public class ReaderXML extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {
//qName节点名
//循环节点属性
String sql = null;
for (int i = 0; i < attributes.getLength(); i++){
attributes.getQName(i);//属性名
attributes.getValue(i);//属性值
sql = "insert into .....";//拼成sql 进行插入
//.....
}
}
}
//调用
ReaderXML r = new ReaderXML(); SAXParserFactory.newInstance().newSAXParser().parse(getClass().getResourceAsStream("data.xml"), r);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取得数据库连接,获得要插入数据库的数据,然后和数据库交互即可完成。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询