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

 手机用户2502857341 发布于 2023-01-12 16:48

我有一个像这样的xml文件:

的test.xml



    Test
    some description
    
        test.tmp
    
    
    
        
    

    
        
    

我喜欢将它导入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行!

查询已成功实施,0行已受影响.

谢谢

1 个回答
  • 包括这一行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>';
    

    所有数据都被提取得很好

    在此输入图像描述

    2023-01-12 16:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有