我有源XML文件,结构如下:
<prices>
<price>
<code>AD1450.150.1</code>
<startdate>2011-10-15</startdate>
<enddate>2011-11-25</enddate>
<rentalprice>1691.00 </rentalprice>
<minrentalprice>860.00 </minrentalprice>
<maxrentalprice>1217.00 </maxrentalprice>
<services>
<service>
<code>BG</code>
<serviceprice>40.0</serviceprice>
<textcode>1293</textcode >
</service>
</services>
</price>
<price>
...
...
目标mysql表是:
CREATE TABLE `price` (
`code` VARCHAR(18) NOT NULL,
`startdate` DATE NOT NULL,
`enddate` DATE NOT NULL,
`rentalprice` FLOAT(9,3) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
和插件数据:
code |startdate |enddate |rentalprice |...
AD1700.100.1|2014-05-03 |2014-11-28 | |
AD1700.100.2|2014-05-03 |2014-11-28 | |
BG |2011-10-15 |2011-11-25 | |
我的问题是价格记录中的列'代码'。 Db忽略了孩子,但是价格\服务\代码替换了价格\代码,但我只使用价格*而没有孩子。源XML无法通过编辑。代码“BG”是坏的因为不是价格\代码而是价格\服务[0] \代码。
可以设置为使SQL解析器忽略子节点中的相同列名? Tahnks的小费。
在10.0.10-MariaDB-1~wheezy-log
上测试答案 0 :(得分:0)
您可以使用简单的XSLT或shell脚本重命名/删除要忽略的元素code
,并将结果传递给数据库。