插入XML数据

时间:2013-06-06 09:19:36

标签: mysql sql

我有一个xml文件:

<root>
<application>
    <app-name>Google App</app-name>
    <group>
        <group-name>MidasGoogleAppsUsers</group-name>
        <user>
            <username>knikkhoo</username>
            <username>devendrat</username>
        </user>
    </group>
</application>
<application>
    <app-name>MySql App</app-name>
    <group>
        <group-name>MidasSQLUsers</group-name>
        <user>
            <username>knikkhoo</username>
            <username>devendrat</username>
        </user>
    </group>
</application>
<application>
    <app-name>ESNutritio</app-name>
    <group>
        <group-name>MidasNutrition</group-name>
        <user>
            <username>knikkhoo</username>
            <username>devendrat</username>
        </user>
    </group>
</application>
 </root>

我有一个名为test_xml的表格,其中包含了strucutre,我在其中存储了这个XML:

Create table test_xml
 (
  ID int,
  XMLData text
 )

还有另一个表UserAppliaction

 create table `test`.`UserApplication`( 
  `ID` int NOT NULL AUTO_INCREMENT , 
  `ApplicationName ` varchar(100) , 
  `GroupName` varchar(100) , 
  `UserName` varchar(100) , 
  PRIMARY KEY (`ID`)
  )

如何将此数据存储到UserApplication表中。 我是Mysql的新手。

1 个答案:

答案 0 :(得分:2)

不要尝试在SQL中解析XML。使用您最喜欢的应用程序编程语言来解析该事物,然后使用SQL查询插入提取的数据:

INSERT INTO UserApplication
SET ApplicationName = ?,
    GroupName = ?,
    UserName = ?

在大多数语言绑定中,您实际上可以输入这样的语句,包括引号,然后重复执行语句,为这些占位符传递不同的值。该库将负责正确地转发您的所有数据。这种方法通常被称为“预备语句”,因为语句的准备和执行是针对不同的步骤。