«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как добавить атрибут ко всем тегам XML с помощью регулярных выражений или расширений PHP XML?

Как добавить атрибут ко всем тегам XML с помощью регулярных выражений или расширений PHP XML?

Опубликовано 22 ноября 2024 г.
Просматривать:338

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

Регулярное выражение для добавления атрибута в любые теги XML

Вопрос:

Как можно использовать preg_replace для добавления определенного атрибута ко всем тегам XML в правильно сформированном документе XML, хранящемся в виде строковой переменной? Например, вы хотите изменить следующий XML:


 some text 

кому:


 some text 

Ответ:

Хотя заманчиво использовать регулярные выражения для этой задачи, это не рекомендуется. XML не является обычным языком, и попытка использовать в нем регулярные выражения может привести к неожиданным результатам. Вместо этого мы рекомендуем использовать XML-расширения 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();

Этот метод гарантирует правильное изменение всех тегов XML, что позволяет избежать потенциальных ошибок при использовании регулярных выражений в XML.

Заявление о выпуске Эта статья воспроизведена: 1729411576 Если есть какие -либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3