美好的一天,
所以这是一个主意,我有很多XML链接,我想将它们合并为一个XML并将其转换为CSV文件,但是由于将其一一放置在文本框中需要付出很大的努力,决定将其输入到单个文本区域中,每个链接均由换行符分隔。所以如果有10个链接,那么textarea中也应该有10行链接
这是我的代码:
$str = $_POST['inp'];
$arr = explode("\n", $str);
$array = array();
$cnt=0;
$ct=0;
foreach ($arr as $line) {
$array[] = $line;
$cnt++;
};
function mergeFile ( DOMDocument $target, $fileName ) {
$source = new DOMDocument();
$source->load($fileName);
foreach ( $source->getElementsByTagName("resValidateFakturPm") as $row ) {
$import = $target->importNode($row, true);
$target->documentElement->appendChild($import);
}
}
$target = new DOMDocument();
$target->loadXML('<?xml version="1.0" encoding="utf-8"?><bunch></bunch>');
for ($ct=0;$ct<count($array);$ct++){
mergeFile($target, $array[$ct]);
}
$target->save("res.xml");
但是有一个小问题,当我在textarea上放置10个链接时,它没有在CSV文件中生成10行,而是仅生成了1行,最后一个。 9行之前为空白。
我的代码在哪里?
答案 0 :(得分:0)
您将$ target赋予该函数并修改本地副本。
1)将方法主体更改为
function mergeFile ( DOMDocument &$target, $fileName )
或
2)return $target
在功能mergeFile和
for ($ct=0; $ct < count($array); $ct++)
{
$target = mergeFile($target, $array[$ct]);
}