-1

XMLファイルをループしてノードとその値を取得する方法は?

私の苦労は次のとおりです。3 つの XML ファイルがあります。

<namespace>
  <node>
    <value_a>A</value_a>
    <value_b>B</value_b>
  </node>
</namespace>

<global>
  <country>
    <code>UK</code>
  </country>
</global>

<geoNames>
  <country>
    <countryCode>Australia</countryCode>
  </country>
</geoNames>

そして、XMLから情報を抽出し、.phpデータファイルを保存して変数として保存する3つの同じ外観の関数でそれらを読んでいます。それらの1つの例:

$parsed_xml_content = "";

$xml = simplexml_load_file("http://" . $srvname . $dirpath . $file_xmlData); 

$obj = $xml->xpath("//geonames");

foreach ($obj[0]->country as $country)
{
    $keys = (array_keys((array) $country));

    $i = 0;
    $parsed_xml_content .= "\t\"" . $country->countryCode . "\" => Array(\n";
    foreach ($country as $val)
    {
        $parsed_xml_content .= "\t\t\"$keys[$i]\" => \"$val\",\n";

        $i++;
    }
    $parsed_xml_content .= "\t),\n";
}

$fo = fopen($locpath . $file_roots, "w");

fwrite($fo, "<?php \$isoGeoData = Array(\n" . $parsed_xml_content . "\n); ?>");

fclose($fo);

$country->countryCodeノード名ではなくインデックスを使用するように書き直す方法は? 3 つの機能を管理するのは面倒です。

4

1 に答える 1

0

これは、配列から xml または xml から配列に通常使用するコードの平和です。

php-array-to-xml または xml-to-array

同じものを使用するか、この関数をスクリプトにclassコピーするだけです。toArray

作成後、arrayphp serialize() serialize関数を使用して結果を書き込むことができますfwrite()

于 2013-09-01T11:55:41.843 に答える