日期:2014-05-18  浏览次数:20715 次

100分求助 如何将如下的XML解析成数据库
XML文件内容:

===============================================================

-   <NewTables>
-   <NewTable   Name= "AA ">
    <PK> False </PK>  
    <COLUMNNAME> Test1 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> True </ALLOWNULLS>  
    </NewTable>
-   <NewTable   Name= "AA ">
    <PK> False </PK>  
    <COLUMNNAME> Test2 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> True </ALLOWNULLS>  
    </NewTable>
-   <NewTable   Name= "AA ">
    <PK> False </PK>  
    <COLUMNNAME> Test3 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> True </ALLOWNULLS>  
    </NewTable>
-   <NewTable   Name= "BB ">
    <PK> False </PK>  
    <COLUMNNAME> TestBB1 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> True </ALLOWNULLS>  
    </NewTable>
-   <NewTable   Name= "BB ">
    <PK> True </PK>  
    <COLUMNNAME> TestBB2 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> False </ALLOWNULLS>  
    </NewTable>
-   <NewTable   Name= "BB ">
    <PK> False </PK>  
    <COLUMNNAME> TestBB3 </COLUMNNAME>  
    <DATATYPE> integer </DATATYPE>  
    <LENGTH> 4 </LENGTH>  
    <ALLOWNULLS> True </ALLOWNULLS>  
    </NewTable>
    </NewTables>

===============================================================


能否将这个XML文件生成数据表的两个表AA和BB.盼回复。

------解决方案--------------------
用DataSet的Xml读取 然后转 for循环DataTable insert到数据库里面
------解决方案--------------------
当然可以
dataset.readxml(流或路径);
datatable tableAA = new ...;
datatalbe tableBB = new .....;

foreach(datatable table in dataset)
{
if (table.localname == "NewTable ")
{
//取出newtable的值
//判断是 AA 还是 BB
if(是AA)
//tableAA添加一行
else if(是bb)
//tableBB添加一行
}
}

之后将tableAA tableBB 导入数据库
------解决方案--------------------
XMLDataDocument


using System;
using System.Data;
using System.Xml;