使用php将标记值从一个xml文件替换/替换为另一个xml文件

使用php将标记值从一个xml文件替换/替换为另一个xml文件,php,xml,Php,Xml,需要将标记值从一个xml文件替换/替换为另一个xml文件 我需要使用php将标记值替换为另一个xml文件 文件1 <complete> <list> <change>hello</change> <manage>world</manage> </list> <list> <change>hello1</change> <mana

需要将标记值从一个xml文件替换/替换为另一个xml文件

我需要使用php将标记值替换为另一个xml文件

文件1

<complete>
  <list>
    <change>hello</change>
    <manage>world</manage>
  </list>
  <list>
    <change>hello1</change>
    <manage>world1</manage>
  </list>
  <list>
    <change>hello2</change>
    <manage>world2</manage>
  </list>
</complete>

你好
世界
你好
世界1
你好
世界2
文件2

<complete>
  <list>
    <change>duplicate</change>
    <manage>duplicate</manage>
  </list>
  <list>
    <change>duplicate1</change>
    <manage>duplicate1</manage>
  </list>
  <list>
    <change>duplicate2</change>
    <manage>duplicate2</manage>
  </list>
</complete>

复制品
复制品
副本1
副本1
副本2
副本2
O/p


复制品
世界
副本1
世界1
副本2
世界2
我需要标记管理从第一个xml文件到第二个xml文件的替换。

给您:

$file1 = file_get_contents("file1.xml");
$file2 = file_get_contents("file2.xml");

preg_match_all('%<manage>(.*?)</manage>%m', $file1, $match, PREG_PATTERN_ORDER);
$xmlmatch = $match[1][0];

$newxml = preg_replace('%<manage>.*?</manage>%m', "<manage>$xmlmatch</manage>", $file2);

file_put_contents("file2.xml", $newxml);

这个问题不够具体,请阅读我们对正文所做的修改。好的,我来看看。(1)我根本不推荐
preg\uuu
。查看
simplexml
DOM
进行解析,在这个站点上有很多很好的例子。(2) 然后写一些代码,编辑你的问题,添加代码,并特别询问细节。谢谢佩德罗,当我有多个集合的时候。整个文件中仅替换第一个集合标记。为了更清楚地理解,我对正文进行了编辑。重复世界重复1世界重复2世界但我的预期输出应与bodyFile1和File2中的一样,具有完全相同的匹配数?匹配项按顺序编号?与duplicate1 duplicate2一样,Diplicate3您引用的标记和XML rite的结构也是相同的匹配项。那么是的。。这就是一个例子。标记具有随机生成的值。它不会是连续的
$file1 = file_get_contents("file1.xml");
$file2 = file_get_contents("file2.xml");

preg_match_all('%<manage>(.*?)</manage>%m', $file1, $match, PREG_PATTERN_ORDER);
$xmlmatch = $match[1][0];

$newxml = preg_replace('%<manage>.*?</manage>%m', "<manage>$xmlmatch</manage>", $file2);

file_put_contents("file2.xml", $newxml);
<complete>
  <list>
    <change>duplicate</change>
    <manage>world</manage>
  </list>
</complete>