Maison > développement back-end > tutoriel php > Comment ajouter un attribut à toutes les balises XML à l'aide d'extensions Regex ou PHP XML ?

Comment ajouter un attribut à toutes les balises XML à l'aide d'extensions Regex ou PHP XML ?

Barbara Streisand
Libérer: 2024-10-20 16:07:02
original
786 Les gens l'ont consulté

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

Regexp pour ajouter un attribut dans n'importe quelle balise XML

Question :

Comment pouvez-vous utiliser preg_replace pour ajouter un attribut spécifique à toutes les balises XML dans un document XML bien formé stocké sous forme de variable de chaîne ? Par exemple, vous souhaitez modifier le XML suivant :

<tag1>
<tag2> some text </tag2>
</tag1>
Copier après la connexion

en :

<tag1 attr="myAttr">
<tag2 attr="myAttr"> some text </tag2>
</tag1>
Copier après la connexion

Réponse :

Bien qu'il soit tentant d'utiliser expressions régulières pour cette tâche, ce n'est pas conseillé. XML n'est pas un langage standard et tenter d'utiliser des expressions rationnelles peut conduire à des résultats inattendus. Nous vous recommandons plutôt d'utiliser les extensions XML de 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>
Copier après la connexion

Cette méthode garantit que toutes les balises XML sont correctement modifiées, évitant ainsi les pièges potentiels liés à l'utilisation d'expressions régulières sur XML.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal