首页 > 解决方案 > 将 <br> 替换为 sed 中的 \n 或 XML 文件中的 PHP

问题描述

我的<br>标签&lt;br&gt;在导出 XML 文件后变成了。我想&lt;br&gt;\n

这是一个字符串的示例,其中发生了这种情况:

to download the ~ &lt;br&gt;to mark on the ~ &lt;br&gt;to attach/enclose the ~

我想要:

to download the ~ \nto mark on the ~ \nto attach/enclose the ~

在做了一些研究后,我在 PHP 中尝试了以下方式:

$filexml='myfile.xml';

$oldxml = simplexml_load_file($filexml);

$xml = simplexml_load_string ( str_replace( "&lt;br&gt;", "\n", $oldxml->asXml() ) );
$xml->asXml('updated.xml');

没有字符串被替换,updated.xml 与 myfile.xml 具有相同的内容。

我尝试使用 sed 替换字符串:

sed -i "s/&lt;br&gt;/\n/g" myfile.xml

同样没有字符串被替换,myfile.xml 保持原样。

如果有人有答案,我将不胜感激!

标签: xmlbashubuntusedstr-replace

解决方案


您可以通过 Stream 编辑器尝试以下命令:

sed -i 's/original/new/g' file.txt

解释:

  • sed = 流编辑器
  • -i =就地(为了保存回原始文件)
  • s = 替代命令
  • original = 要替换的表达式或单词
  • new = 要替换的文本
  • g = global(替换所有匹配项,而不仅仅是第一次出现
  • file.txt = 文件名

编辑 1

这个解决方法让我得到了你要求的结果,请测试它:

$str = "&lt;br&gt;to mark on the ~ &lt;br&gt;to attach/enclose the";
$str1=str_replace( "&lt;br&gt;", "\\n", $str);
str_replace ("<br>", "\\n", $str1);
echo $str1;

请问您使用哪个应用程序来提取 XML 文件?


推荐阅读