to zzzle(Vincent):
随便找个解析器,和驱动
能否介绍一下思路呢?我想用Xbean来实现

解决方案 »

  1.   

    用openxml 这个命令的,当然也可以用dom就是很麻烦,可以先看sql联机帮助,看看openxml的用法
      

  2.   

    XBean我不懂,我是用JDOM解析获得每一个字段的属性,然后用SQL语句加入数据库的,性能可能不是很好。
      

  3.   

    DECLARE @idoc int
    DECLARE @doc varchar(1000)
    SET @doc ='
    <ROOT>
    <Customer CustomerID="VINET" ContactName="Paul Henriot">
       <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
          <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
          <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
       </Order>
    </Customer>
    <Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
       <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
          <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
       </Order>
    </Customer>
    </ROOT>'
    --Create an internal representation of the XML document.
    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
    -- Execute a SELECT statement that uses the OPENXML rowset provider.
    SELECT    *
    FROM       OPENXML (@idoc, '/ROOT/Customer',1)
                WITH (CustomerID  varchar(10),
                      ContactName varchar(20))下面是结果集: CustomerID ContactName          
    ---------- -------------------- 
    VINET      Paul Henriot
    LILAS      Carlos Gonzlez
      

  4.   

    我是刚接触这方面的东西,实在是不懂,谁能给出个简单的例子吗?最好是用java写的
      

  5.   

    看看我的程序,XML跟你的类似;xml文档内容:  
    <?xml version="1.0" encoding="UTF-8" ?> 
     <XMLData>
     <Table Database="NeGrid">
      Location 
      <Rows>
      Number is: 1 
      <LOC_ID>Lgbtestdata0001</LOC_ID> 
      <URL>202.115.30.191/services</URL> 
      <ID_PREFIX>UESTC200404250001</ID_PREFIX> 
      <LOC_DESC>lgb靠靠?1</LOC_DESC> 
      <CREATE_TIME>2005-4-25 0.0.0.0</CREATE_TIME> 
      <LAST_UPDATE_TIME>2005-4-26 0.0.0.0</LAST_UPDATE_TIME> 
      </Rows>
     <Rows>
      Number is: 2 
      <LOC_ID>Lgbtestdata0002</LOC_ID> 
      <URL>202.115.30.191/services</URL> 
      <ID_PREFIX>UESTC200404250002</ID_PREFIX> 
      <LOC_DESC>lgb靠靠?2</LOC_DESC> 
      <CREATE_TIME>2005-4-25 0.0.0.0</CREATE_TIME> 
      <LAST_UPDATE_TIME>2005-4-26 0.0.0.0</LAST_UPDATE_TIME> 
      </Rows>
      </Table>
      </XMLData>
    java程序:
    ///////////////通用三级XML文档解析函数/////////////////////
    public void readXMLdocs(String fname) throws FileNotFoundException,
    IOException,JDOMException
    {
    DOMBuilder builder = null;
    XercesDOMAdapter xercAdapter = new XercesDOMAdapter(); org.w3c.dom.Document w3dom = xercAdapter.getDocument(new FileInputStream(fname),false);
    ///调用与w3c兼容的xerces解析器解析XML文档////////////// builder =new DOMBuilder("org.jdom.adapters.XercesDOMAdapter");
    Document doc = builder.build(w3dom);
    Element relement = doc.getRootElement(); List lsttables = relement.getChildren();
    Iterator itrtables = lsttables.iterator();
    while (itrtables.hasNext())
    {
    Element table= (Element) itrtables.next();
    List lttbattr =table.getAttributes() ;
    Iterator itrtbattr = lttbattr.iterator();
    while (itrtbattr.hasNext())
    {
    Attribute sattr = (Attribute) itrtbattr.next();
    System.out.println(sattr.getName()+" = "+sattr.getValue());
    }
    System.out.println(table.getText());
    List lstrows = table.getChildren();
    Iterator itrrows = lstrows.iterator();

    while (itrrows.hasNext())
    {
    Element  row= (Element ) itrrows.next();
    List fs = row.getChildren();
    Iterator itrfs  =fs.iterator();
    System.out.println(row.getText());
    while (itrfs.hasNext())
    {
    Element field = (Element ) itrfs.next();
    System.out.println(field.getName()+" = "+field.getText());
    //System.out.println(field.getText());
    }
    }
    }
    }
      

  6.   

    luoknd(飞天) :
    非常感谢你,我有了一点思路了