如何替换 XML 中特定标记之间的 \n 换行符

pHow to replace \n line break between specific tag in XML

我有一个很长的 XML 源文件存储在 $Result 中,其中包含其他标签,多个名为 uid1 和 uid20 的标签。

<set1> 
  <uid1>Line 1
      Line 2
      Line 3
      Line 4
  </uid1>
  <uid20>Line 1
      Line 2
      Line 3
      Line 4
  </uid20>
</set1>
<set2> 
  <uid1>Line 1
      Line 2
      Line 3
      Line 4
  </uid1>
  <uid20>Line 1
      Line 2
      Line 3
      Line 4
  </uid20>
</set2>
 ...

我需要用分号替换这两个标记之间的所有 \n 换行符,但保持所有其他 \n 换行符不变。我试过 preg_replace 但无法让它工作,因为我不知道如何包含标签数组。我也读过 preg_replace 不适合这样做吗?对我有什么提示吗?

尝试str_replace("</set1>\n<set2>", "</set1>;<set2>", $xml);

\n 仅适用于双引号。

看这里https://3v4l.org/ltmWq