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>

私がする必要があるのは、 と の間のファイル名を取り、<filename>それを使用してと</filename>の間の部分を置き換えることです。たとえば、上記の場合、「image1」を 0881DAF2-80EC-7A25-9CF3-BFD67F4EF764.jpg に置き換える必要があるため、次のようになります。<id></id>

<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></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 に答える