php - PHP 和 XmlWriter 更改缩进字符串
问题描述
我正在使用 laravel 5,并尝试使用 XMLWRITER 输出 xml 文件。是否可以将缩进字符串从“一个空格”更改为“制表”?
我的实际代码:
$xml = new \XMLWriter();
$xml->openMemory();
$xml->setIndent(4);
$xml->startDocument('1.0','UTF-8','yes');
$xml->startElement('immeuble');
$xml->writeAttribute('nature-immeuble', 'test');
$xml->startElement('adresse');
$xml->writeAttribute('localite', 'Copropriete');
$xml->writeAttribute('libelle-pays', 'France');
$xml->startElement('cadastre');
$xml->writeAttribute('section', 'AA');
$xml->writeAttribute('numero', '0000');
$xml->endElement();
$xml->endElement();
foreach($lots as $lot) {
$xml->startElement('lot');
$xml->writeAttribute('numero', $lot->id);
$xml->writeAttribute('type', 'appartement');
$designation = getDesignation2($lot->id);
$xml->writeAttribute('designation', $designation);
$xml->writeAttribute('batiment', substr($lot->etageLots->first()->etage->batiment->nom, 0, 5));
$xml->writeAttribute('etage', $lot->etageLots->first()->etage->coeff_id);
if(is_null($lot->tantieme_force)){
$tantieme = round($lot->tantieme_calcul,0);
}else{
$tantieme = $lot->tantieme_force;
}
$xml->writeAttribute('milliemes-generaux', $tantieme.$base);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$content = $xml->outputMemory();
$xml = null;
return response($content)->header('Content-Type', 'text/xml');
它给了我正确的 xml,但每一行之前都缩进一个空格,实际上我想要一个制表符。
是否可以更改此设置?
我看到了 set indent string 但我没有找到一种方法来使用它与制表。
感谢您的帮助。
解决方案
如果你想用制表缩进,那么像这样使用它:
$xml->setIndent(true);
$xml->setIndentString("\t");
推荐阅读
- flutter - 颤振:如何通过渐变动画更改容器颜色
- qt - 如何删除图表中的刻度线
- c# - 反序列化对对象的 xml 响应时,xml 文档中存在错误
- c# - 使用 Powershell 订阅 Websocket
- javascript - AmChart 未显示工具提示
- java - JPA中两个表之间的递归SQL查询
- ios - 在 iOS Swift 中使用外部麦克风作为输入和蓝牙/耳机作为输出同时录制和播放声音
- google-apps-script - 从 Google 表格中提取文本中的粗体字
- reactjs - 通过 React JS 中的共享重命名指向特定页面(别名)的链接
- c++ - C++ 浮雕文本 - 雕刻或凸起