我如何使用正则表达式将此行格式化为格式化代码

时间:2016-11-19 23:46:49

标签: php regex domdocument

我如何转换此行:

fastgreedy.community(ig, weights = NULL)

格式化为:

        <user_profil><username>root</username><email>root@foo.bar</email></user_profil>

使用正则表达式。

另外我不明白为什么<user_profil> <username>root</username> <email>root@foo.bar</email> </user_profil> (DOMDocument的一个实例)仅将结果作为一行返回。

2 个答案:

答案 0 :(得分:12)

实际上使用正则表达式会是更长的选择。而是使用

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

这应该为您提供格式化的代码。

答案 1 :(得分:5)

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

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

替换为:

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

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