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!