0

我的 XML 节点结构是如何工作的,我有多个父元素的子元素,它们也出现多次。我可以访问子元素,但只能访问每个父元素的第一个元素。我还试图将子元素中的数据插入 MySQL。在第一个元素之后,我似乎无法访问任何子元素。当我 echo 时count(),我可以获得每个重复出现的父级的子元素的总数,但我似乎无法使用该数据。解析 XML 对我来说相当新,我的 PHP 有点生疏,所以请见谅。我没有得到什么?

注意:我关心的数据在 mt 节点中。mt 节点的直接父节点是 mi 节点。

$string = file_get_contents('file1.xml');
$xml = new SimpleXMLElement($string);

foreach ($xml->md as $mt_tag) {
    if (isset($mt_tag->mi->mt)) {
        $query = "INSERT INTO xmlData(
                xml_data
                ) VALUES (
                '{$mt_tag->mi->mt}'
                )";
        mysql_query($query, $connection);
        echo count($mt_tag->mi->mt);
        echo "<br />";
    } else {
        echo "<p>Creation Failed.<p>";
        echo "<p>" . mysql_error() . "</p>";
    }
}
4

2 回答 2

0

您在 mt 节点上缺少一个 for 循环:

foreach ($xml->md as $md_tag) {
       if (isset($md_tag->mi->mt)) {

              foreach ($md_tag->mi->mt as $mt) {
                    //do something
              }
       }
}

请确保更改不一致的内容

foreach ($xml->md as $mt_tag) {

foreach ($xml->md as $md_tag) {
于 2012-08-15T08:55:46.530 回答
0

您必须考虑阅读以下内容:http: //bg2.php.net/manual/en/function.simplexml-load-string.php

于 2012-08-15T08:53:27.757 回答