将XML文档写入数据库

1.在操练之前,先准备一个XML文件FirstXml.xml和FirstXml.xsd,并且这两个文件都在根目录下面,其内容分别如下:
FirstXml.xml
{
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
    <ID>1</ID>
    <TEXT>AAA</TEXT>
    <BELONG>0</BELONG>
  </Table>
  <Table>
    <ID>2</ID>
    <TEXT>BBB</TEXT>
    <BELONG>0</BELONG>
  </Table>
  <Table>
    <ID>3</ID>
    <TEXT>CCC</TEXT>
    <BELONG>0</BELONG>
  </Table> 
</NewDataSet>
}
FirstXml.xsd
{
 <?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
     This code was generated by a tool to store the dataset designer's layout information.
     Changes to this file may cause incorrect behavior and will be lost if
     the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
  <Shapes>
    <Shape ID="DesignTable:Table" ZOrder="1" X="70" Y="70" Height="79" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="22" SplitterPosition="75" />
  </Shapes>
  <Connectors />
</DiagramLayout>
}
2.下面的代码会将上面的XML文档写入数据库
    public void ReadXmlToSaveToTableMethordone()
   {
      SqlConnection conn = new SqlConnection("server=david;database=test;uid=sa;pwd=");
      conn.Open();
      XmlDocument xd = new XmlDocument();
      xd.Load(Server.MapPath("~//") + "FirstXml.xml");
      XmlNodeList xn = xd.SelectNodes("NewDataSet/Table");
      string text;
      int belong;
      for (int i = 0; i < xn.Count; i++)
      {
         XmlNode id = xn[i].SelectSingleNode("ID");
         text = xn[i].SelectSingleNode("TEXT").InnerText;
         belong = Convert.ToInt32(xn[i].SelectSingleNode("BELONG").InnerText);
         Response.Write(id.InnerText.ToString() + "|" + text + "|" + belong + "<br>");
         SqlCommand comm = new SqlCommand("insert into tree(text,belong) values('"+text+"',"+belong+")",conn);
         comm.ExecuteNonQuery();
      }
      conn.Close();
   }

你在需要的时候调用此方法就可以将XML文档中的内容写入数据库.

3.也可以将XML文档读入到DATASET中,如果您添加了一个GRIDVIEW(VS2005)或者GRIDVIEW(VS2003),就可以显示DATASET中的数据了,代码如下:
{public void Show()
   {
      ReadTableToXml();
      DataSet ds = new DataSet();
      string pathxml = Server.MapPath("~//") + "FirstXml.xml";
      string pathxsd = Server.MapPath("~//") + "FirstXml.xsd";
      ds.ReadXmlSchema(pathxsd);
      ds.ReadXml(pathxml);
      this.GridView1.DataSource = ds.Tables["Table"];
      this.GridView1.DataBind();     
   }

4.在2中是将XML文档直接写入数据库的,那么有人会问,是不是可以先将XML文档读入DATASET中,然后将DATASET中的内容更新到数据库 中?答案是肯定的.咱们现在就以上面的XML文档为例,在操作之前应该先建立一个和XML文档的数据结构相同数据库.其实在2中也是这么做的.这个数据库 就上TEST,所用的数据表就是TREE.下面的代码实现了上述的功能.
  public void ReadXmlToSaveToTableMethordone()
   {
      SqlConnection conn = new SqlConnection("server=david;database=test;uid=sa;pwd=");
      SqlDataAdapter da = new SqlDataAdapter("select * from tree where id=-1", conn);
      SqlCommandBuilder cbuider = new SqlCommandBuilder(da);
      DataSet ds = new DataSet();
      da.Fill(ds);
      string pathxml = Server.MapPath("~//") + "FirstXml.xml";
      string pathxsd = Server.MapPath("~//") + "FirstXml.xsd";
      ds.ReadXmlSchema(pathxsd);
      ds.ReadXml(pathxml);
      da.Update(ds);
      Response.Write("okokokokokok");
}

到此为至,你就会发现,将一个XML文档写入数据库有两中方案,一种是直接将XML文档写入数据库,就如2,另一种是将XML文档先读如到DATASET,然后将DATASET中的内容写入数据库.




 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 XML 文件的内容写入数据库,你可以使用编程语言中提供的 XML 解析库和数据库连接库来完成。以下是一个通用的步骤: 1. 使用适当的编程语言(如Python、Java、或Ruby)选择一个 XML 解析库和数据库连接库。这些库通常提供了从 XML 文件中提取数据和将数据插入数据库的方法和函数。 2. 使用选定的 XML 解析库读取 XML 文件并解析其内容。你可以使用适当的方法来遍历 XML 数据结构,并提取需要的数据。 3. 使用数据库连接库连接到你的数据库,并创建一个新的数据库表,该表的列应与 XML 文件中的数据结构相对应。你可以使用适当的方法来执行 SQL 语句来创建表。 4. 使用数据库连接库将数据插入到数据库表中。你可以使用适当的方法来执行 SQL 语句将数据插入到数据库中。 以下是一个使用 Python 的示例代码,使用 `xml.etree.ElementTree` 解析 XML 并将数据写入 MySQL 数据库: ```python import xml.etree.ElementTree as ET import mysql.connector # 解析XML文件 tree = ET.parse('path/to/your/xml/file.xml') root = tree.getroot() # 连接到MySQL数据库 conn = mysql.connector.connect( host="your_host", user="your_username", password="your_password", database="your_database" ) # 创建一个新表 cursor = conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS your_table_name (column1 datatype, column2 datatype, ...)") # 插入数据 for child in root: data = [child.find('field1').text, child.find('field2').text, ...] # 根据XML的结构提取数据 sql = "INSERT INTO your_table_name (column1, column2, ...) VALUES (%s, %s, ...)" cursor.execute(sql, data) # 提交更改并关闭连接 conn.commit() conn.close() ``` 确保将 `'path/to/your/xml/file.xml'` 替换为实际的 XML 文件路径,`your_host`、`your_username`、`your_password` 和 `your_database` 分别替换为你的 MySQL 主机、用户名、密码和数据库名称,以及根据 XML 的结构和需要的字段进行调整。 根据你选择的编程语言和库,代码实现可能会有所不同,但基本的思路是解析 XML 文件并将数据插入到数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值