我有一堆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标签。