在MySql中存储XML元素

时间:2017-12-28 16:46:11

标签: mysql xml

我有一堆XML文件,我正在使用bash库:xsltproc来转换XML文件,然后将它们加载到表中。

转换的XML文件是扁平的:

<foos>
    <foo>
        <p>3. some random value.</p>
    </foo>
    <foo>
        <p>3. The <h2>TOP LETTERS</h1>, this </p>
    </foo>
 <foo>threes</foo>
</foos>

当我这样做时:

LOAD XML LOCAL INFILE '/home/dev/f/f.xml' INTO TABLE foo rows identified by '<foo>';

我明白了:

| id | foo    |
+----+--------+
|  1 | NULL   |
|  2 | NULL   |
|  3 | threes |

我的目标是确保将整个文本存储在<foo>元素中。

我的表格结构如下:

mysql> desc foo;                                                                                                
+-------+------------------+------+-----+---------+----------------+                                            │
| Field | Type             | Null | Key | Default | Extra          |                                            │
+-------+------------------+------+-----+---------+----------------+                                            │
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |                                            │
| foo   | mediumtext       | YES  |     | NULL    |                |                                            │
+-------+------------------+------+-----+---------+----------------+ 

我想把结果作为:

| id | foo    |
+----+--------+
|  1 | <p>3. The <h2>TOP LETTERS</h1>, this </p>   |
|  2 | <p>3. The <h2>TOP LETTERS</h1>, this </p>   |
|  3 | threes |

我已经尝试过查看mysql的不同功能,例如 ExtractValue ,它会提取文本并剥离xml标签。

0 个答案:

没有答案