如何将XML文件导入MariaDB数据库


How to import XML file into MariaDB database?

>我有一个问题。我的PHP脚本不起作用,我不知道为什么。这是XML文件:

http://itoffice.sk/toto.xml

这是我用于读取XML的PHP代码:

$xml = simplexml_load_file("toto.xml") or die("feed sa nepodarilo načítať");
$id  = $xml->Zbozi['kod_zbozi'];
echo $id;

这行不通。我需要显示并将的所有属性写入MySQL

<兹博兹>示例:

<Zbozi diffgr:id="Zbozi1" msdata:rowOrder="0" kod_zbozi="DL139A" popis="HP DMS-59 to Dual DVI Cable Kit,accessory" part_number="DL139A" zaruka="24" dostupnost="false" dph="20" cena="29.23" cenaEU="35.34" snimek="DL139A/06_s.jpg" kod_vyrobce="093-001453" kod_kategorie="PC STOLNÍ POČÍTAČE" kategorie="Stolné počítače" kod_podkategorie="PŘÍSLUŠENSTVÍ ZN PC" podkategorie="Príslušenstvo značkových PC" typ="0" aut_poplatek="0.000" rema="0.000" sam_neprodejne="0" sn_vydej="false" ean="808736662901" doprodej="false">

请帮帮我。谢谢。

脚本无法正常工作的原因是您没有正确遵循 XML 树。如您所见,XML 的结构如下所示:

<diffgr:diffgram>
    <Cenik>
        <Zbozi></Zbozi>
        ...
        <Zbozi></Zbozi>
    </Cenik>
</diffgr:diffgram>

因此,您必须遵循该树,然后循环查找Zbozi元素以获取其所有属性。

看看这段代码:

$xml = simplexml_load_file('http://itoffice.sk/toto.xml');
$zbozi = $xml->children('diffgr', TRUE)->diffgram->children()->Cenik->Zbozi;
$id_arr = array();
foreach ($zbozi as $zbozi_element)
{
    $id_arr[] = (string) $zbozi_element['kod_zbozi'];
}

首先,我们加载XML文件,那里没有新内容。但在第二行中,我们将遍历 XML 文件。首先我们将前缀命名空间设置为 diffgr(因为 diffgr:diffgram 中的分号),然后我们只需找到Zbozi元素,并为它们循环。

您可以看到,在循环中,我已将所有kod_zbozi属性值添加到数组中。在这一点上,你真的可以用这些信息做任何你想做的事情,这只是为了让你开始。