Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menambah Atribut kepada Semua Teg XML Menggunakan Sambungan XML Regex atau PHP?

Bagaimana untuk Menambah Atribut kepada Semua Teg XML Menggunakan Sambungan XML Regex atau PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-20 16:07:02788semak imbas

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

Regexp untuk Menambah Atribut dalam Mana-mana Teg XML

Soalan:

Bagaimana anda boleh menggunakan preg_replace untuk menambah atribut tertentu ke semua teg XML dalam dokumen XML yang dibentuk dengan baik yang disimpan sebagai pembolehubah rentetan? Sebagai contoh, anda ingin mengubah suai XML berikut:

<tag1>
<tag2> some text </tag2>
</tag1>

kepada:

<tag1 attr="myAttr">
<tag2 attr="myAttr"> some text </tag2>
</tag1>

Jawapan:

Walaupun ia menarik untuk digunakan ungkapan biasa untuk tugasan ini, ia tidak digalakkan. XML bukan bahasa biasa, dan cubaan menggunakan regex padanya boleh membawa kepada hasil yang tidak dijangka. Sebaliknya, kami mengesyorkan menggunakan sambungan XML PHP:

<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>

Kaedah ini memastikan semua teg XML diubah suai dengan betul, mengelakkan kemungkinan perangkap menggunakan ungkapan biasa pada XML.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Atribut kepada Semua Teg XML Menggunakan Sambungan XML Regex atau PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn