"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como adicionar um atributo a todas as tags XML usando extensões XML Regex ou PHP?

Como adicionar um atributo a todas as tags XML usando extensões XML Regex ou PHP?

Publicado em 2024-11-22
Navegar:573

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

Regexp para adicionar atributo em qualquer tag XML

Pergunta:

Como você pode usar preg_replace para adicionar um atributo específico para todas as tags XML em um documento XML bem formado armazenado como uma variável de string? Por exemplo, você deseja modificar o seguinte XML:


 some text 

para:


 some text 

Resposta:

Embora seja tentador usar expressões regulares para esta tarefa, não é aconselhável. XML não é uma linguagem regular e a tentativa de usar expressões regulares nela pode levar a resultados inesperados. Em vez disso, recomendamos usar as extensões XML do 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();

Este método garante que todas as tags XML sejam modificadas corretamente, evitando as possíveis armadilhas do uso de expressões regulares em XML.

Declaração de lançamento Este artigo é reproduzido em: 1729411576 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3