将XML(树结构)导入MySQL数据库

时间:2015-11-17 07:19:43

标签: mysql sql xml import xml-parsing

我有一个带树结构的XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<doct timestamp="14.11.2015 05:15:06" title="test.ru directories structure export with articles">
    <page>
        <page_id>1</page_id>
        <name>Catalog</name>
        <uri>catalog</uri>
        <page parent_page_id="1">
            <page_id>1104128</page_id>
            <name>Vehicles</name>
            <uri>vehicles</uri>
                <page parent_page_id="1104128">
                    <page_id>1105688</page_id>
                    <name>Cars</name>
                    <uri>cars</uri>
                        <product>
                            <page>1105688</page>
                            <product>49876</product>
                        </product>
                        <product>
                            <page>1105688</page>
                            <product>3525</product>
                        </product>
                        <product>
                            <page>1105688</page>
                            <product>50131</product>
                        </product>
                </page>
                <page parent_page_id="1104128">
                    <page_id>1105856</page_id>
                    <name>Planes</name>
                    <uri>planes</uri>
                        <product>
                            <page>1105856</page>
                            <product>31387</product>
                        </product>
                        <product>
                            <page>1105856</page>
                            <product>31567</product>
                        </product>
                </page>
        </page>
        <page parent_page_id="1">
            <page_id>1125468</page_id>
            <name>Сlothes</name>
            <uri>clothes</uri>
                <page parent_page_id="1125468">
                    <page_id>1378596</page_id>
                    <name>T-shirts</name>
                    <uri>t-shirts</uri>
                        <product>
                            <page>1378596</page>
                            <product>45648</product>
                        </product>
                        <product>
                            <page>1378596</page>
                            <product>5777</product>
                        </product>
                </page>
        </page>
    </page>
</doct>

我在数据库中创建了3个表:

表&#34;类别&#34;列: page_id |名字| URI

表&#34;子类别&#34;列: parent_page_id | page_id |名字| URI

表&#34;产品&#34;列: 页面|产品

我试图使用:

LOAD XML LOCAL INFILE "tree.xml"
INTO TABLE products
ROWS IDENTIFIED BY '<product>';

此命令成功导入所有产品,但复制每个产品:

page    | product
-----------------
1106965 | 58814
-----------------
1106965 | 58814
-----------------
1106965 | 58955
-----------------
1106965 | 58955
-----------------
1106965 | 59079
-----------------
1106965 | 59079

所以,我有两个问题:

  1. 如何导入类别和子类别?
  2. 我对产品做错了什么? (为什么产品重复?)
  3. 提前致谢!

0 个答案:

没有答案