我正在尝试处理导入的XML文件并在其中一个节点中生成文本
<Name>SOMETHINGTOMAKELOWERCASE</Name>
小写
<Name>somethingtomakelowercase</Name>
到目前为止,我得到了:
$xml = file_get_contents($xmlfile);
$xml = preg_replace('/<Name>(.*)<\/Name>/e', '<Name>' . strtolower($1) . '</Name>',$xml);
fwrite(fopen($xmlfile, 'wb'), $xml);
我已经尝试了十个不同版本的正则表达式,但它们都不会起作用。你能指出正确的正则表达方向吗?
答案 0 :(得分:2)
请改为尝试:
$xml = file_get_contents($xmlfile);
$xml = preg_replace('/<Name>(.*)<\/Name>/e', "'<Name>' . strtolower('\\1') . '</Name>'",$xml);
fwrite(fopen($xmlfile, 'wb'), $xml);
在preg_replace中使用/ e修饰符时,必须传递一串代码作为替换参数进行评估,而不是已经计算过的表达式。