0

我有个问题。我的 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>的所有属性

<Zbozi> 例子:

<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">

请帮帮我。谢谢。

4

1 回答 1

1

您的脚本无法正常工作的原因是您没有正确遵循 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属性值添加到一个数组中。在这一点上,你真的可以用这些信息做任何你想做的事情,这只是为了让你开始。

于 2013-09-30T08:27:51.900 回答