我的代碼循環通過一個CSV文件,將其轉換爲XML:PHP字符串concatination
<?php
for ($i = 1; $i < $arraySize; $i++) {
$n = 0;
if (substr($csv[$i][0], 0, 1) == $let) {
$surName = $dom->createElement('name');
$name = $csv[$i][0];
$nameText = $dom->createTextNode($name);
$surName->appendChild($nameText);
$text = str_replace(chr(94), ",", $csv[$i][4]);
$n = $i + 1;
$next = $csv[$n][0];
while ($next == 'NULL') {
$repl = str_replace(chr(94), ",", $csv[$n][4]);
$text = $repl;
$n++;
$next = $csv[$n][0];
}
$bio = $dom->createElement('bio');
$bioText = $dom->createTextNode($text);
$bio->appendChild($bioText);
$person = $dom->createElement('person');
$person->appendChild($surName);
$person->appendChild($bio);
$people->appendChild($person);
}
}
$xmlString = $dom->saveXML();
echo $xmlString;
?>
的問題是$text = $repl;
鍵入$text .= $repl;
帶來:
error on line 1 at column 1: Document is empty.
但省略了.
只是給出最後文本行。 備份代碼工作: 公共功能測試($ let){csv = $ this-> readCSV(「data \ AlphaIndex1M.csv」); $ arraySize = sizeof($ csv); $ let = strtoupper($ let); // echo''; for $($ i = 1; $ i echo $ csv [$ i] [0]; //。' echo', - >'。$ csv [$ i] [4]; $ n = $ ($ next =='NULL'){ echo $ csv [0]; // if($ next =='NULL'){} echo $ csv [ $ N] [4]「「;。 $ N ++; $下一= $ CSV [$ N] [0];} // 回波 '' 回波 '';} } // 回波' ' }
嘗試首先初始化$文字,如:' $ text =「」'(不在循環中) – Rizier123 2014-12-02 16:36:28
看起來像其他事情正在進行,代碼示例不完整。不應該是'while($ next!= NULL){}'或更好'!is_null($ next)'?如果你有一個鋸齒形的CSV,看起來可能會由於硬編碼而出錯(如索引'[4]')。另外:你確定csv是有效的分析,這裏沒有數據。 – zanlok 2014-12-03 00:53:40
我想到了這一點,所以我去了excel,用「Null」替換空白單元格,用'^'替換掉','。例如:ADAMS#221,ADAMS#221,Somersetshire^England,1640,John ADAMS b/d Somersetshire Eng;米艾格尼絲___。 [每Savage:約翰^裁縫^在Newbury^MA40在1640年。] NULL,SQUIRE,Braintree ,,亨利ADAMS b。薩默塞特^工程。 abt 1583;原稿。布蘭特裏的老闆;米Eng。^ 1609^Edith SQUIRE; d。 Braintree 1646. Pres的祖先。約翰亞當斯。 NULL,Braintree^Medfield,Medfield的Edward ADAMS^b。 Kingweston /薩默塞特^ Eng。 1629;米1652年在MA^Lydia PENNIMAN。 – Lynn 2014-12-03 02:57:43