私はこの問題を調査してきましたが、必要なものが見つかりません。それは難しいことではないはずです、おそらくそれは構文の問題です=)
次のような関数内にXMLを表す文字列を作成します。
$sxe = simplexml_load_string('
<xmlFile>
<item param="'.$variable.'">
<subitem>'.$var2s.'</subitem>
</item>
</xmlFile>
');
abc,def,ghi
変数の内容は、次のようにハッシュから取得した両方の変数で、次のような単純な文字列です。
isset($variable);
$variable="";
isset($vars2);
$vars2="";
foreach ($hashArray as $stringKey => $stringValue) {
// I separate each result with a comma
$variable .= $stringKey.",";
$vars2 .= $stringValue.",";
}
// Then remove the last comma
$variable = substr($variable, 0, -1);
$vars2 = substr($vars2, 0, -1);
XMLを保存すると、次の$sxe->asXml('xml/myGreatFile.xml');
ようなものが得られます。
<xmlFile>
<item param="abc,def,ghi">
<subitem>JKL,MNO,PQR</subitem>
</item>
</xmlFile>
それは問題ありませんでしたが、新しい要件については、次のような結果が必要です。
<xmlFile>
<item param="abc">
<subitem>JKL</subitem>
</item>
<item param="def">
<subitem>MNO</subitem>
</item>
<item param="ghi">
<subitem>PQR</subitem>
</item>
</xmlFile>
この反復ノードを作成するにはどうすればよいですか?変数の場合と同じように、文字列内でPHP関数を連結しようとしましsimplexml_load_string
たが、不可能なようです。
$sxe = simplexml_load_string('
<xmlFile>'.
// Syntax Error u_u
foreach ($hashArray as $stringKey => $stringValue) {
$variable .= $stringKey.",";
$vars2 .= $stringValue.",";.
'<item param="'.$variable.'">
<subitem>'.$var2s.'</subitem>
</item>'.
}
.'</xmlFile>
');
もちろん私の構文は間違っていますが、この反復ノードを何らかの方法で作成したいと思います。おそらくサイクルを使用し、文字列に渡す代わりにハッシュ配列を直接使用します。