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

时间:2015-04-26 01:37:04

标签: php xml

需要将一个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>

文件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>

O / P

<complete>
  <list>
    <change>duplicate</change>
    <manage>world</manage>
    <change>duplicate1</change>
    <manage>world1</manage>
    <change>duplicate2</change>
    <manage>world2</manage>

  </list>
</complete>

我需要标记管理从第一个xml文件替换到第二个xml文件。

1 个答案:

答案 0 :(得分:0)

你走了:

$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);

注意:确保file2.xml可写。

处理后file2.xml看起来像:

<complete>
  <list>
    <change>duplicate</change>
    <manage>world</manage>
  </list>
</complete>