質問:
preg_replace を使用して特定の属性を追加するにはどうすればよいですか文字列変数として保存された整形式の XML ドキュメント内のすべての XML タグに適用しますか?たとえば、次の XML:
<tag1> <tag2> some text </tag2> </tag1>
を次のように変更したいとします。
<tag1 attr="myAttr"> <tag2 attr="myAttr"> some text </tag2> </tag1>
答え:
を使用するのは魅力的ですが、このタスクでは正規表現を使用することはお勧めできません。 XML は正規の言語ではないため、正規表現を使用しようとすると予期しない結果が生じる可能性があります。代わりに、PHP の XML 拡張機能を使用することをお勧めします。
<code class="php">$xml = new SimpleXml(file_get_contents($xmlFile)); function process_recursive($xmlNode) { $xmlNode->addAttribute('attr', 'myAttr'); foreach ($xmlNode->children() as $childNode) { process_recursive($childNode); } } process_recursive($xml); echo $xml->asXML();</code>
この方法により、すべての XML タグが適切に変更されることが保証され、XML で正規表現を使用する際に発生する可能性のある落とし穴が回避されます。
以上がRegex または PHP XML 拡張機能を使用してすべての XML タグに属性を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。