有没有办法增加PHP的DOMDocument formatOutput属性的缩进大小?现在它缩进每个节点2个空格。我想使它成为一个制表符或4个空格。有没有办法增加PHP的DOMDocument formatOutput属性的缩进大小?
7
A
回答
5
可能会更改libxml中的缩进字符串,但就我所知,您不能更改DOM使用的缩进。尽管如此,XMLWriter也是可能的。
作为替代方案,你可以使用整洁到prettyprint的XML:
$dom = new DOMDocument;
$dom->preserveWhiteSpace = TRUE;
$dom->loadXml('<root><foo><bar> baz </bar></foo></root>');
$tidy = tidy_parse_string($dom->saveXml(), array(
'indent' => TRUE,
'input-xml' => TRUE,
'output-xml' => TRUE,
'add-xml-space' => FALSE,
'indent-spaces' => 4
));
$tidy->cleanRepair();
echo $tidy;
但要注意,这个行为在上述情况下离奇。它删除条元素中的空格,除非您在条形标记上敲击xml:space="preserve"
。当你这样做时,它会保留空格,但也会在前后添加换行符。你必须弄清楚它是否适合你的问题。见Tidy docs
7
这不是一个很好的解决方案,因为它依赖于知道该格式前缀双位:
preg_replace_callback('/^(+)</m', function($a) {
return str_repeat(' ',intval(strlen($a[1])/2) * 4).'<';
}, $doc->saveXML());
它取代各缩进4个空格。或者您可以删除*4
并使用"\n"
作为重复字符。
+1
谢谢!这正是我需要将2个空格缩进为制表符,将返回值更改为:return str_repeat(“\ t”,intval(strlen($ a [1])/ 2))。'<';` – Kus 2012-07-24 01:21:08
相关问题
- 1. 有没有办法使用jQuery添加区分大小写的属性?
- 2. 柔性框大小没有增加
- 3. 有没有办法阻止缩放比例的节点大小?
- 4. 有没有办法在webKit的contentEditable div中增加字体大小?
- 5. 有没有办法增加QString?
- 6. PHP:有没有办法调用不区分大小写的substr_count()?
- 7. 有没有办法在php会话中增加样式?
- 8. 有没有办法将一个属性的值附加到另一个属性?
- 9. UIView没有调整大小,有没有我失踪的属性?
- 10. 有没有办法限制ASP.NET 3.5进程的最大内存大小?
- 11. 有没有办法减小NSWorkSpace启动的窗口大小?
- 12. 有没有办法增加不太慢的numpy数组?
- 13. PHP动态对象属性有没有办法让它工作?
- 14. 有没有办法在IE10 Metro中捕捉缩小的最大事件?
- 15. 有没有办法根据窗口大小调整所有项目的大小?
- 16. 有没有办法增加API的V4的度量限制?
- 17. 有没有办法在视图中获取插入的缩进?
- 18. Emacs 24:有没有办法使用cc模式的缩进?
- 19. 有没有办法让迭代器每3次增加一次?
- 20. 在Chef中,有没有办法从子目录加载属性?
- 21. 有没有办法将alt属性添加到ZingChart?
- 22. 有没有办法为“Worklight设置”添加更多属性?
- 23. 有没有办法获得JavaFX属性的所有绑定?
- 24. 有没有办法拥有不可变的CSS属性?
- 25. Amazon SimpleDB - 有没有办法列出域中的所有属性?
- 26. 有没有办法获得DOMElement的所有属性?
- 27. 有没有办法搜索SSAS中的所有属性
- 28. 有没有办法增加使用JavaScript的时间?
- 29. 有没有办法自定义UITableViewCell的backgroundView的大小?
- 30. 有没有办法通过 - 压缩到PHP的curl_setopt()?
有什么方法可以在配置文件的某个地方改变它吗?它不必在运行时。 – ThinkingInBits 2010-12-03 20:24:35