Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mithilfe von Regex- oder PHP-XML-Erweiterungen ein Attribut zu allen XML-Tags hinzu?

Wie füge ich mithilfe von Regex- oder PHP-XML-Erweiterungen ein Attribut zu allen XML-Tags hinzu?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 16:07:02729Durchsuche

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

Regexp zum Hinzufügen eines Attributs in beliebigen XML-Tags

Frage:

Wie können Sie preg_replace verwenden, um ein bestimmtes Attribut hinzuzufügen? auf alle XML-Tags in einem wohlgeformten XML-Dokument, das als String-Variable gespeichert ist? Beispielsweise möchten Sie das folgende XML ändern:

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

in:

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

Antwort:

Während die Verwendung verlockend ist Für diese Aufgabe ist es nicht ratsam, reguläre Ausdrücke zu verwenden. XML ist keine reguläre Sprache und der Versuch, darauf reguläre Ausdrücke zu verwenden, kann zu unerwarteten Ergebnissen führen. Stattdessen empfehlen wir die Verwendung der XML-Erweiterungen von 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>

Diese Methode stellt sicher, dass alle XML-Tags ordnungsgemäß geändert werden, wodurch die potenziellen Fallstricke der Verwendung regulärer Ausdrücke in XML vermieden werden.

Das obige ist der detaillierte Inhalt vonWie füge ich mithilfe von Regex- oder PHP-XML-Erweiterungen ein Attribut zu allen XML-Tags hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn