mysql - 如何使用 mysql LOAD XML LOCAL INFILE 导入 xml 文件

标签 mysql xml

我有一个这样的 xml 文件:

test.xml

<?xml version="1.0" encoding="utf-8" ?>
<plugin name="tree">
    <title>Test</title>
    <description>some description</description>
    <files>
        <file>test.tmp</file>
    </files>
    <install><![CDATA[
        global $test;
    ]]></install>
    <hooks>
        <hook name="hookname"><![CDATA[
            global $local;
        ]]></hook>
    </hooks>

    <phrases>
        <phrase key="category"><![CDATA[Show categories]]></phrase>
    </phrases>
</plugin>

我喜欢将它导入到 MySQL 表中,例如“mytable”

CREATE TABLE mytable (plugin varchar(255),title varchar(255),description varchar(255), file varchar(255),install varchar(255),hook varchar(255),phrase varchar(255));

我使用了下面的命令

LOAD XML LOCAL INFILE 'test.xml' 
INTO TABLE mytable(plugin,title,description,file,install,hook,phrase);

它运行成功但有 0 行!

The query has been successfully implemented, 0 rows have been affected.

谢谢

最佳答案

包括这一行 ROWS IDENTIFIED BY '<plugin>' .这样你的查询应该看起来像

LOAD XML LOCAL INFILE "D:\\test.xml"
INTO TABLE mytable
ROWS IDENTIFIED BY '<plugin>';

看起来您的 XML 文件格式不正确,因此即使插入了 1 行;所有的值都没有被提取(仍然是 NULL )。

做如下小改动

创建表结构

CREATE TABLE mytable (
plugin_name varchar(255),
title varchar(255),
description varchar(255), 
`file` varchar(255),
`install` varchar(255),
hook varchar(255),
phrase varchar(255));

更改您的 XML 文件

<?xml version="1.0" encoding="utf-8" ?>
<plugin plugin_name="tree">
    <title>Test</title>
    <description>some description</description>
         <file>test.tmp</file>
    <install>![CDATA[
        global $test;
    ]]</install>
        <hook name="hookname">![CDATA[
            global $local;
        ]]</hook>
        <phrase key="category">![CDATA[Show categories]]</phrase>
</plugin>

现在如果你使用

LOAD XML LOCAL INFILE "D:\\test.xml"
INTO TABLE mytable
ROWS IDENTIFIED BY '<plugin>';

所有数据都可以正常提取

enter image description here

关于mysql - 如何使用 mysql LOAD XML LOCAL INFILE 导入 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932102/

相关文章:

javascript - 跨浏览器 Javascript XML 解析

java - 如何在values-v21中使用语言更改strings.xml?

sql-server - TSQL 中的 XML 解析给出无效列错误?

android - Eclipse Android 应用程序崩溃

java - xml 的文档生成器给出错误

javascript - 甜蜜警报不适用于 $_session

java - 在 Java (JDBC) 中使用 SQL 语句时占位符不起作用

mysql - 如何对联合查询进行计数

php - 在 Laravel 中创建数据库约束断言

php - 防止使用 PHP 将特殊字符替换到我的数据库中