ホームページ >バックエンド開発 >PHPチュートリアル >Regex または PHP XML 拡張機能を使用してすべての XML タグに属性を追加する方法

Regex または PHP XML 拡張機能を使用してすべての XML タグに属性を追加する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 16:07:02788ブラウズ

How to Add an Attribute to All XML Tags Using Regex or PHP XML Extensions?

XML タグに属性を追加するための正規表現

質問:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。