0

我有一个相当独特的情况,我需要对 XML(或纯文本)文件进行大量编辑。在 XML 文件中,有几个图像引用,例如:

<image>
  <id>image1</id>
  <dateTaken>Sun Sep 9 10:57:31 GMT-0700 2012</dateTaken>
  <dateAdded>Mon Jun 24 17:44:50 GMT-0700 2013</dateAdded>
  <filename>0881DAF2-80EC-7A25-9CF3-BFD67F4EF764.jpg</filename>
</image>

我需要做的是取 and 之间的文件名<filename></filename>并用它来替换 and 之间的<id>部分</id>。例如在上面的例子中,我需要用 0881DAF2-80EC-7A25-9CF3-BFD67F4EF764.jpg 替换“image1”,所以它看起来像这样:

<image>
  <id>0881DAF2-80EC-7A25-9CF3-BFD67F4EF764.jpg</id>
  <dateTaken>Sun Sep 9 10:57:31 GMT-0700 2012</dateTaken>
  <dateAdded>Mon Jun 24 17:44:50 GMT-0700 2013</dateAdded>
  <filename>0881DAF2-80EC-7A25-9CF3-BFD67F4EF764.jpg</filename>
</image>

我需要在同一个文档中更改数百个这样的图像参考。使用 PHP 或其他方法,有没有一种快速的方法可以批量编辑文档并将文档中的每个引用中的和之间的每个 ID 替换为<id>and之间</id>的内容?非常感谢任何可能的帮助!<filename></filename><image> </image>

4

1 回答 1

1

假设您有此 xml 的根目录,您可以通过将 xml 加载为 $xml_string 来执行以下操作:

$xml = new SimpleXMLElement($xml_string);
foreach($xml->children() as $child){
$child->id = $child->filename;
}
$xml->asXml('updated.xml');

于 2013-06-25T01:33:24.823 回答