什么意思?
建立一个表ID,NAME,DATE;用程序解析出XML里面的内容存起来(你可以把每一个属性的值都放一个LIST里,也可以把ID,NAME,DATE放一个对象里,用集合把这一个个的对象放在一起,怎么弄自己可以考虑.然后就可以插入数据库表了.
这是我猜测的意思,是不是如此我也不清楚

解决方案 »

  1.   

    用xlst吧,跟语言无关。
    我的一个项目是这样做的。
      

  2.   

    用JDom或Dom4J之类的东西解析这个字符串,分别得到各个节点的值,然后再通过参数化SQL对数据库进行操作。
    Dom的构造函数需要接受一个Reader对象,这里你应该使用StringReader对象来对你的这个字符串进行包装。
    大致上就这样,应该不是什么很难的问题吧。
      

  3.   

    就是用JAVA解析XML文件的问题,网上搜索一下,很多
      

  4.   

    就是解析的问题,如果嫌自己写个程序麻烦的话,那就用JDom或Dom4J之类的东西解析这个字符串,分别得到各个节点的值,然后再通过参数化SQL对数据库进行操作。
    Dom的构造函数需要接受一个Reader对象,这里你应该使用StringReader对象来对你的这个字符串进行包装。
      

  5.   

    jdom来做~或者自己写个io程序来控制节点,把取出来的东东~生成sql就可以了嘛
      

  6.   

    /*
     * 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;    }
       
    }
    不知这样是不是楼主想要的
      

  7.   

    kao,还真有这么热心的人
    估计肯定没事做!
      

  8.   

    用jdom解析得到参数,再写个类专门得到这些参数后生成sql,对数据库操作
      

  9.   

    XML 原文件作了一点修改。 UpdateRow primary-key 用来搜索一条记录更新。
    <?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'
      

  10.   

    用jdom解析,结合velocity模板引擎,你要生成什么代码都可以
      

  11.   

    可以看看oracle xsql是怎样做这样的开发的 :)