我有一个像这样的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>
Run Code Online (Sandbox Code Playgroud)
我喜欢将它导入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));
Run Code Online (Sandbox Code Playgroud)
我使用下面的命令
LOAD XML LOCAL INFILE 'test.xml'
INTO TABLE mytable(plugin,title,description,file,install,hook,phrase);
Run Code Online (Sandbox Code Playgroud)
它运行成功,但有0行!
查询已成功实施,0行已受影响.
谢谢
Rah*_*hul 12
包括这一行ROWS IDENTIFIED BY '<plugin>'.你的查询应该是这样的
LOAD XML LOCAL INFILE "D:\\test.xml"
INTO TABLE mytable
ROWS IDENTIFIED BY '<plugin>';
Run Code Online (Sandbox Code Playgroud)
看起来你的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));
Run Code Online (Sandbox Code Playgroud)
更改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>
Run Code Online (Sandbox Code Playgroud)
现在,如果你使用
LOAD XML LOCAL INFILE "D:\\test.xml"
INTO TABLE mytable
ROWS IDENTIFIED BY '<plugin>';
Run Code Online (Sandbox Code Playgroud)
所有数据都被提取得很好

| 归档时间: |
|
| 查看次数: |
16658 次 |
| 最近记录: |