我一直在研究这个问题,但我找不到我需要的东西。应该不难,可能是语法问题=)
我在函数内部创建了一个表示 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>
如何创建这个重复节点?我尝试simplexml_load_string
像处理变量一样在字符串中连接 PHP 函数,但似乎不可能:
$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>
');
当然我的语法是错误的,但我想以某种方式创建这个重复节点,可能有一个循环,也可能直接使用我的哈希数组而不是将其传递给字符串。