【问题标题】:SimpleXML multiple data from another arraySimpleXML 来自另一个数组的多个数据
【发布时间】:2014-07-11 04:33:46
【问题描述】:

拜托,我有这段代码可以将数据从 XML 导入数据库:

$a = glob('data/*/*.xml');

echo "import kategorie ...... ";
foreach ($a as $i) {
    $xml = simplexml_load_file("$i") or die ("Chyba: Nemuzu nacist soubor");

    foreach($xml->DocumentElement as $entry) {
        foreach ($entry->hotel as $dataHotel) {
            addCategory("$dataHotel->country", "$dataHotel->location", "$dataHotel->location2");
        }
        foreach ($entry->Popisy as $dataPopisy) {
            addHotel("$dataHotel->hotel", "$dataPopisy->doporuc");
        }
    }
}
echo "OK\n"

我不知道该怎么做——我需要在函数“addHotel”中从“hotel”数组和“Popisy”数组中获取数据。 所以,我需要同时从两个中获取。

这里是 XML 结构:http://pastebin.com/TNTpBijg,这里是 http://fmnet.cz/HLS240.xml

这可能吗?非常感谢!


现在我尝试了这个:

$a = glob('data/*/*.xml');

echo "import kategorie ...... ";
foreach ($a as $i) {
    $xml = simplexml_load_file("$i") or die ("Chyba: Nemuzu nacist soubor");

    foreach($xml->DocumentElement as $entry) {
        foreach ($entry->hotel as $dataHotel) {
            //addCategory("$dataHotel->country", "$dataHotel->location", "$dataHotel->location2");
            foreach ($entry->Popisy as $dataPopisy) {
               //addHotel("$dataHotel->hotel", "$dataPopisy->doporuc");
                echo "$dataHotel->hotel";
                echo "\n";
                echo "$dataPopisy->doporuc";
                echo "\n";
            }
        }
    }
}
echo "OK\n";

但输出只有: 导入类别……好的

【问题讨论】:

  • 你如何决定哪个hotel和哪个Popisy搭配?你能给我们看一个数据样本,看看格式吗?
  • 这里是 XML 结构:pastebin.com/TNTpBijg
  • 在上面的链接中,您有一个 SimpleXML 变量的 php 转储。你能给我们看一个原始 xml 的例子吗?
  • 没问题:fmnet.cz/HLS240.xml 谢谢

标签: php arrays xml parsing simplexml


【解决方案1】:

是的,这是可能的。您可以通过将 popisy 循环嵌入酒店循环或相反的方式来实现。检查下面的代码:

$a = glob('data/*/*.xml');

echo "import kategorie ...... ";
foreach ($a as $i) {
    $xml = simplexml_load_file("$i") or die ("Chyba: Nemuzu nacist soubor");

    foreach($xml->DocumentElement as $entry) {
        foreach ($entry->hotel as $dataHotel) {
            addCategory("$dataHotel->country", "$dataHotel->location", "$dataHotel->location2");
            foreach ($entry->Popisy as $dataPopisy) {
               addHotel("$dataHotel->hotel", "$dataPopisy->doporuc");
            }
        }
    }
}
echo "OK\n"

【讨论】:

  • 当我尝试使用这种方法但不起作用时:在 foreach($entry->Popisy....) 运行 echo "$dataHotel->hotel";或回显“$dataPopisy-​​>doporuc”; echo 不工作,没有输出
猜你喜欢
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 2021-01-18
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多