首頁 >後端開發 >php教程 >如何使用正規表示式或 PHP XML 擴充功能為所有 XML 標籤新增屬性?

如何使用正規表示式或 PHP XML 擴充功能為所有 XML 標籤新增屬性?

Barbara Streisand
Barbara Streisand原創
2024-10-20 16:07:02793瀏覽

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 上使用正規表示式的潛在陷阱。

以上是如何使用正規表示式或 PHP XML 擴充功能為所有 XML 標籤新增屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn