=)我需要你的帮助才能完成一项简单的任务。我一直在寻找,但我找不到我需要的东西。这应该不难,可能是语法问题=)
我在函数中创建一个表示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);
当我使用$sxe->asXml('xml/myGreatFile.xml');
保存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>
');
当然我的语法是错误的,但我想以某种方式创建这个重复节点,可能是一个循环,可能直接使用我的哈希数组,而不是将其传递给字符串。
答案 0 :(得分:1)
答案很简单:在simplexml函数之外构建字符串变量,然后在函数中使用它。
$mystring = "<xmlFile>";
foreach($array as $key => $value)
{
$mystring .= "<item param='$key'><subitem>$value</subitem></item>";
}
$mystring .= "</xmlFile>";
$sxe = simplexml_load_string($mystring);
如果您使用的是多维数组?只需嵌套foreach
字符串构建语句。