2016-11-19 69 views
6

我怎么可以转换这一行格式化该行成格式化代码:使用正则表达式我如何使用正则表达式

<user_profil> 
    <username>root</username> 
    <email>[email protected]</email> 
</user_profil> 

 <user_profil><username>root</username><email>[email protected]</email></user_profil> 

弄成格式化等。

另外我不明白为什么$doc->saveHTML()(DOMDocument的一个实例)只返回结果为一行。

回答

12

实际上使用正则表达式会是更长的选项。宁可用

$doc->preserveWhiteSpace = false; 
$doc->formatOutput = true; 
$xml_string = $doc->saveXML(); 
echo $xml_string; 

这应该让你格式化的代码。

5

使用@georoot方式是更好的,但如果你想尝试正则表达式,你可以这样来做:

$2\n\t$3\n\t$4\n$5 

演示:https://regex101.com/r/QtVCoY/1

+0

感谢

(\s+)(\<\w+\>)(\<\w+\>\w+\<\/\w+\>)(\<\w+\>[\w\@\.]+\<\/\w+\>)(\<\/\w+\>) 

与更换对于这个建议。 – JEdot