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 つの機能を管理するのは面倒です。