什么意思?
建立一个表ID,NAME,DATE;用程序解析出XML里面的内容存起来(你可以把每一个属性的值都放一个LIST里,也可以把ID,NAME,DATE放一个对象里,用集合把这一个个的对象放在一起,怎么弄自己可以考虑.然后就可以插入数据库表了.
这是我猜测的意思,是不是如此我也不清楚
建立一个表ID,NAME,DATE;用程序解析出XML里面的内容存起来(你可以把每一个属性的值都放一个LIST里,也可以把ID,NAME,DATE放一个对象里,用集合把这一个个的对象放在一起,怎么弄自己可以考虑.然后就可以插入数据库表了.
这是我猜测的意思,是不是如此我也不清楚
解决方案 »
- 服务端与android客户端进行增量更新的业务逻辑
- inno setup打包后,调用一个batTest.bat批处理文件,需要inno setup安装时的路径和用户输入的IP,哪位大哥会啊
- 关于ejb的简单问题
- 如何使用htmlparser提取网页中指定的table中的链接
- SSH框架 在线等!郁闷!!急
- JB2006发布web service的问题
- 问一个关于ibatis的resultMap的问题(属性ibatis和spring进来看看)
- 急啊,求救!!
- 怎样生成java程序的*.exe文件?
- Apache的BeanUtils报错
- JavaWeb系统定时自动运行的问题
- 请教:jsp怎样调用web services??
我的一个项目是这样做的。
Dom的构造函数需要接受一个Reader对象,这里你应该使用StringReader对象来对你的这个字符串进行包装。
大致上就这样,应该不是什么很难的问题吧。
Dom的构造函数需要接受一个Reader对象,这里你应该使用StringReader对象来对你的这个字符串进行包装。
* Created on 2006-2-13
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.anymusic;import java.io.File;
import java.io.IOException;
import java.io.StringBufferInputStream;
import java.util.ArrayList;
import java.util.List;import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;/**
* @author Martin
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class DataChange {
//将sql保存在一容器里
public ArrayList getSql(String Xmlstr) {
SAXBuilder builder = new SAXBuilder();
Document doc = null;
ArrayList sqlCon = null;
StringBufferInputStream sbis = new StringBufferInputStream(Xmlstr);
try {
doc = builder.build(sbis);
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element rootelement = doc.getRootElement();
rootelement = rootelement.getChild("data"); rootelement = rootelement.getChild("list");
List list = rootelement.getChildren("DataChange");
sqlCon = new ArrayList();
for (int n = 0; n < list.size(); n++) {
Element children = (Element) list.get(n);
String id = children.getChildText("id");
String name = children.getChildText("name");
String date = children.getChildText("date");
String sql = "INSERT INTO DataChange(ID,NAME,DATE) VALUES('" + id
+ "'," + "'" + name + "'," + "'" + date + "')";
sqlCon.add(sql);
} return sqlCon; }
}
不知这样是不是楼主想要的
估计肯定没事做!
<?xml version="1.0" encoding="GB2312"?>
<root>
<data>
<list insert="InsertRow" update="UpdateRow">
<InsertRow table="users">
<id>1</id>
<name>qq</name>
<date>20060101</date>
</InsertRow>
<InsertRow table="users">
<id>2</id>
<name>bb</name>
<date>20060111</date>
</InsertRow>
<UpdateRow table="users" primary-key="id">
<id>2</id>
<name>bb</name>
<date>20060111</date>
</UpdateRow>
<UpdateRow table="users" primary-key="id">
<id>1</id>
<name>qq</name>
<date>20060101</date>
</UpdateRow>
</list>
</data>
</root>XSL 文件如下 (假设只有一个主键列):
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xalan="http://xml.apache.org/xslt">
<xsl:output method="text" />
<xsl:template match="root">
--Translate Data Records exported from DataBase to SQL Statements.
<xsl:text>--SQL Statements</xsl:text>
<xsl:apply-templates />
</xsl:template>
<xsl:template name="insert"
match="child::*[name()=/root/data/list/@insert]">
<xsl:variable name="space" select="' '" />
<xsl:text>INSERT INTO</xsl:text>
<xsl:copy-of select="$space" />
<xsl:value-of select="@table" />
<xsl:text>(</xsl:text>
<xsl:for-each select="child::*">
<xsl:value-of select="name()" />
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>)VALUES(</xsl:text>
<xsl:for-each select="child::*">
<xsl:text>'</xsl:text>
<xsl:value-of select="." />
<xsl:text>'</xsl:text>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>)</xsl:text>
</xsl:template>
<xsl:template name="update"
match="child::*[name()=/root/data/list/@update]">
<xsl:variable name="space" select="' '" />
<xsl:text>UPDATE</xsl:text>
<xsl:copy-of select="$space" />
<xsl:value-of select="@table" />
<xsl:copy-of select="$space" />
<xsl:for-each select="child::*[name()!=../@primary-key]">
<xsl:text>SET</xsl:text>
<xsl:copy-of select="$space" />
<xsl:value-of select="name()" />
<xsl:text>='</xsl:text>
<xsl:value-of select="." />
<xsl:text>'</xsl:text>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:copy-of select="$space" />
<xsl:text>WHERE</xsl:text>
<xsl:copy-of select="$space" />
<xsl:for-each select="child::*[name()=../@primary-key]">
<xsl:value-of select="name()" />
<xsl:text>='</xsl:text>
<xsl:value-of select="." />
<xsl:text>'</xsl:text>
<xsl:if test="position() != last()">
<xsl:text>AND</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>结果如下:
--SQL Statements
INSERT INTO users(id,name,date)VALUES('1','qq','20060101')
INSERT INTO users(id,name,date)VALUES('2','bb','20060111')
UPDATE users SET name='bb',SET date='20060111' WHERE id='2'
UPDATE users SET name='qq',SET date='20060101' WHERE id='1'