用于测试的PHP XMLWriter输出格式

用于测试的PHP XMLWriter输出格式,php,xmlwriter,Php,Xmlwriter,XML消息的接收者要求我在每个元素的末尾添加换行符。他们要求这样做,因为消息直接进入Oracle数据库,他们只能将其视为一个长字符串,这使得测试变得困难。他们目前的解决办法是在Internet Explorer中打开它,但这需要时间 有没有办法在每个元素的末尾添加换行符 我尝试在每个元素的末尾添加以下内容 print (chr(13).chr(10)); 但这对产出没有影响。这是我留言的开头 $writer = new XMLWriter(); $writer->openURI('

XML消息的接收者要求我在每个元素的末尾添加换行符。他们要求这样做,因为消息直接进入Oracle数据库,他们只能将其视为一个长字符串,这使得测试变得困难。他们目前的解决办法是在Internet Explorer中打开它,但这需要时间

有没有办法在每个元素的末尾添加换行符

我尝试在每个元素的末尾添加以下内容

print (chr(13).chr(10)); 
但这对产出没有影响。这是我留言的开头

$writer = new XMLWriter();  
$writer->openURI('php://output');
$writer->startDocument('1.0','UTF-8');   
$writer->setIndent(TRUE);   
    $writer->startElement('vehicleServiceRequest'); 
        $writer->startElement('vehicleDetails');
            $writer->writeElement('companyIdentifier', $AIS_transmission_code);
            $writer->writeElement('transportCompanyName', $user['company_name']);
            $writer->writeElement('dispatchNumber', $booking_reference);                            
            $writer->writeElement('plannedDispatchDate', date("Y-m-dTH:i:s"));                      // We use today as the planned dispatch date
            $writer->writeElement('dispatchPostCode', $user['postcode']);                           
            $writer->writeElement('dispatchCountryCode', 'UK');                                     
这是输出

<?xml version="1.0" encoding="UTF-8"?><vehicleServiceRequest><vehicleDetails><companyIdentifier>001</companyIdentifier><transportCompanyName>Mixed Freight Services</transportCompanyName><dispatchNumber>174672</dispatchNumber>
001混合货运服务174672

我知道这是一个旧线程,但由于我没有看到有用的回复,下面是您缺少的一行代码,以便正确缩进XML文件

$writer->setIndent(TRUE); // after your line of code add the below line
$writer->setIndentString('    '); // here you just have to add the string you wish to use for indentation; in this case I used 4 spaces

我确实查看了该答案,但我正在消息中寻找CRLF,以使其更具可读性,而不是该数据中的换行符。也就是说,我刚刚尝试了$writer->setIndentString(PHP_EOL);这是工作的一部分。我现在在每个元素的末尾有三行提要,但是在Notepad++中查看时丢失了整体格式。谢谢,我现在要添加它。