0

XMLノード構造がどのように機能するかというと、親の子要素が複数あり、それらも複数回発生します。私は子の要素に到達することができますが、各親の最初の要素のみです。また、子要素のデータをMySQLに挿入しようとしています。最初の要素の後に子要素にアクセスできないようです。エコーすると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

これを読むことを検討する必要があります:http: //bg2.php.net/manual/en/function.simplexml-load-string.php

于 2012-08-15T08:53:27.757 に答える
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 に答える