Pregunta:
¿Cómo se puede usar preg_replace para agregar un atributo específico? ¿A todas las etiquetas XML en un documento XML bien formado almacenado como una variable de cadena? Por ejemplo, desea modificar el siguiente XML:
some text
a:
some text
Respuesta:
Si bien es tentador utilizar expresiones regulares para esta tarea, no es recomendable. XML no es un lenguaje normal e intentar utilizar expresiones regulares en él puede generar resultados inesperados. En su lugar, recomendamos utilizar las extensiones XML de 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 garantiza que todas las etiquetas XML se modifiquen correctamente, evitando los peligros potenciales del uso de expresiones regulares en XML.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3