我有一个通过https发送的文件,我正在使用php脚本处理。
使用以下方式接受数据:
$data = file_get_contents('php://input')
如果写入文件,则将其写为一行。
由于我们的内部系统(IBM power 7),我告诉I.T我需要在每个xml元素之后添加一个回车符。
因此该文件当前在编辑器中打开为:
<root><element1><element2></element2></element1></root>
我需要它:
<root>
<element1>
<element2></element2>
</element1>
</root>
这需要在每个结束标记和带有子标记的标记之后插入“\ n”。
有什么想法吗?
答案 0 :(得分:2)
formatOutput选项可以执行此操作。
答案 1 :(得分:2)
如果只是为了插入换行符,正则表达式就可以了。
但是,请勿start parsing XML with Regular Expressions!
试试这个:
$xml = preg_replace(
'=(<(.*?)>)(?![^<>]*</\2>|$)=s',
"\\1\n",
file_get_contents('php://input') );
该表达式使用 negative lookahead assertion [(?!..)
]和backreference匹配所有未遵循EOF的XML标记或匹配的结束标记。