如何在 XML 中换行?
how to do linebreaks in XML?
我终于准备好了 xml-(预)解析脚本。它解析并检查每个元素,并将一定数量的元素保存到新的 xml 文件中。
我的 "problem" 是在新的 xml 文件中,所有内容都是未格式化且没有换行符的。
while ($xml = $chunk->read()) {
$obj = simplexml_load_string($xml);
// check if ID is in Array
if(!in_array((string)$obj->id, $ids)) {
$chunkCount++;
$xmlData .= '<product>';
foreach($obj as $key => $value) {
$xmlData .= '<'.$key.'>'.$value.'</'.$key.'>';
}
$xmlData .= '</product>\n';
// if $chunkLimit is reached, save to file
if($chunkCount == $chunkLimit) {
$xp = fopen($file = "slices/slice_".$sliceCount.".xml", "w");
fwrite($xp, '<?xml version="1.0" ?>'."");
fwrite($xp, "<item>");
fwrite($xp, $xmlData);
fwrite($xp, "</item>");
fclose($xp);
print "Written ".$file."<br>";
$xmlData = '';
$chunkCount = 0;
$sliceCount++;
}
}
}
如何让我的 xml-slices 看起来不错,有换行符? .. 我已经试过 \n
但它只是将 \n
写入新文件。
使用特殊字符 \n 和 \t 进行制表。
所以:
fwrite($xp, "<item>\n");
fwrite($xp, "\t" . $xmlData."\n");
fwrite($xp, "</item>\n");
诀窍是使用 "
而不是 '
来将特殊字符解析为特殊字符。
所以
$xmlData .= '</product>\n';
应该是
$xmlData .= "</product>\n";
如果需要缩进,也可以使用 \t
作为制表符!
我终于准备好了 xml-(预)解析脚本。它解析并检查每个元素,并将一定数量的元素保存到新的 xml 文件中。
我的 "problem" 是在新的 xml 文件中,所有内容都是未格式化且没有换行符的。
while ($xml = $chunk->read()) {
$obj = simplexml_load_string($xml);
// check if ID is in Array
if(!in_array((string)$obj->id, $ids)) {
$chunkCount++;
$xmlData .= '<product>';
foreach($obj as $key => $value) {
$xmlData .= '<'.$key.'>'.$value.'</'.$key.'>';
}
$xmlData .= '</product>\n';
// if $chunkLimit is reached, save to file
if($chunkCount == $chunkLimit) {
$xp = fopen($file = "slices/slice_".$sliceCount.".xml", "w");
fwrite($xp, '<?xml version="1.0" ?>'."");
fwrite($xp, "<item>");
fwrite($xp, $xmlData);
fwrite($xp, "</item>");
fclose($xp);
print "Written ".$file."<br>";
$xmlData = '';
$chunkCount = 0;
$sliceCount++;
}
}
}
如何让我的 xml-slices 看起来不错,有换行符? .. 我已经试过 \n
但它只是将 \n
写入新文件。
使用特殊字符 \n 和 \t 进行制表。
所以:
fwrite($xp, "<item>\n");
fwrite($xp, "\t" . $xmlData."\n");
fwrite($xp, "</item>\n");
诀窍是使用 "
而不是 '
来将特殊字符解析为特殊字符。
所以
$xmlData .= '</product>\n';
应该是
$xmlData .= "</product>\n";
如果需要缩进,也可以使用 \t
作为制表符!