我有一个如下所示的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<article lang="">
<para/>
<para/>
<informaltable frame="all">
<tgroup cols="2.4"><tbody><row><entry namest="c1" nameend="c3"><para>Informe No. 08- 1696 </para></entry><entry namest="c4" nameend="c5"><para>Pagina 1 de 1</para></entry></row><row><entry namest="c1" nameend="c3"><para>Apellidos: COLINA</para></entry><entry namest="c4" nameend="c5"><para>Nombres: GELA</para></entry></row><row><entry><para>Edad: 50a</para></entry><entry><para>Sexo: F</para></entry><entry><para>Historia No.: </para></entry><entry><para>Entrada: 15-01-2008</para></entry><entry><para>Salida: 17-01-2008</para></entry></row><row><entry namest="c1" nameend="c3"><para>Remitente: Dr. Mano Paz</para></entry><entry namest="c4" nameend="c5"><para>Institución: Torre Sur</para></entry></row><row><entry namest="c1" nameend="c5"><para>Origen y Naturaleza del Material: Orina (muestra A, B y C )</para></entry></row></tbody></tgroup>
</informaltable>
<para/>
<para/>
<para/>
<para>INFORME CITOLOGICO</para>
<para/>
<para>A.- MACROSCOPICO: Se recibe envase conteniendo 15 cc de orina, el cual se centrifuga, se extiende en láminas portaobjetos y se colorea para evaluación microscópica.</para>
<para/>
<para> RESULTADO: FROTIS CITOLOGICO NEGATIVO. </para>
<para/>
<para>B.- MACROSCOPICO: Se recibe envase conteniendo 14 cc de orina, el cual se centrifuga, se extiende en láminas portaobjetos y se colorea para evaluación microscópica.</para>
<para/>
<para> RESULTADO: FROTIS CITOLOGICO NEGATIVO. </para>
<para/>
<para>C.- MACROSCOPICO: Se recibe envase conteniendo 13 cc de orina, el cual se centrifuga, se extiende en láminas portaobjetos y se colorea para evaluación microscópica.</para>
<para/>
<para> RESULTADO: FROTIS CITOLOGICO NEGATIVO. </para>
<para/>
<para/>
<para/>
<para> </para>
<para/>
</article>
我需要使用<para>
或MYSQL LOAD
导入其中包含信息的MYSQL XML
代码,并将每个<para>
的内容放入SO列中导入的XML文件我得到1行。最终结果看起来像这样:
Column1 - - - Column2 - - - Column3 - - - Column4
1st Para - - -2nd Para - - 3rd Para - - 4th Para
等等所有<para>
代码。现在是默认行为,如果我尝试导入此文件,每个<para>
内容将连续而不是列,为同一个文件创建20行(每行中的每个信息)而不是每次导入同一行但在不同列上的字段。如何设置它以便它们进入每列而不是行。
以下是它现在的样子:
我想要的是每个文件都在一列中,而不是图像中所示的一行。知道这将对大约50.000多个文件进行,因此每个XML文件应该是一行,并且它的字段是一列,而不是该XML的每个字段成为一行。基本上,所有字段都应该放在一列中,只占一行,以便1行= 1个XML文件。
答案 0 :(得分:1)
您说您已经连续添加了<para>
个,因此,在将每个文件加载到para1
列后,您可以尝试:
SELECT CONCAT(
'SELECT ', GROUP_CONCAT('"',MID(REPLACE(para1, '.', ''),INSTR(REPLACE(para1, '.', ''),':')+1),'"' ' AS `', LEFT(REPLACE(para1, '.', ''),INSTR(REPLACE(para1, '.', ''),':')-1),'`' SEPARATOR ','),
' FROM `para` LIMIT 0,1')
INTO @qry
FROM `para`;
PREPARE stmt FROM @qry;
EXECUTE stmt;
输出:
EDAD | SEXO | HISTORIA NO | ENTRADA | SALIDA | REMITENTE | INSTITUCION | ORIGEN Y NATURALEZA DEL MATERIAL |
50a | F | |15-01-2008 |17-01-2008| | | Orina (muestra A, B y C) |