【发布时间】:2011-01-19 17:14:15
【问题描述】:
我们的客户向我们提供了需要使用 PHP 处理的 XML 数据。他们选择通过将属性用于大块文本(包含换行符)来滥用属性。 XML 解析器用空格替换换行符以使 XML W3 兼容。
为了确保我们不会丢失换行符,我想将文件作为字符串读取,然后将双引号之间的所有换行符转换为 
。我想我需要一个正则表达式,但我很难想出一个。
到目前为止,这是我的测试代码(PHP 5),使用前瞻和后视,但它不起作用:
$xml = '<tag attribute="Header\r\rFirst paragraph.">\r</tag>';
$pattern = '/(?<=")([^"]+?)\r([^"]+?)(?=")/';
print_r( preg_replace($pattern, "$1 $2", $xml) );
谁能帮我解决这个问题?对于经验丰富的正则表达式大师来说应该很容易:)
【问题讨论】: