繁体   English   中英

如何在XML中换行?

[英]how to do linebreaks in XML?

我终于准备好了xml-(pre-)解析脚本。 它解析并检查每个元素,并将大量元素保存到新的xml文件中。

我的“问题”是,在新的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-slice看起来不错? ..我已经尝试过\\n但是它只是将\\n写入新文件。

使用特殊字符\\ n和\\ t进行制表。

所以:

fwrite($xp, "<item>\n");

fwrite($xp, "\t" . $xmlData."\n");

fwrite($xp, "</item>\n");

技巧是使用"而不是'来将特殊字符解析为特殊字符。

所以

$xmlData .= '</product>\n';

应该

$xmlData .= "</product>\n";

如果要缩进,也可以将\\t用于制表符!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM