首页 >后端开发 >php教程 >如何使用正则表达式或 PHP XML 扩展向所有 XML 标签添加属性?

如何使用正则表达式或 PHP XML 扩展向所有 XML 标签添加属性?

Barbara Streisand
Barbara Streisand原创
2024-10-20 16:07:02787浏览

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

在任何 XML 标签中添加属性的正则表达式

问题:

如何使用 preg_replace 添加特定属性存储为字符串变量的格式正确的 XML 文档中的所有 XML 标记?例如,您想要将以下 XML:

<tag1>
<tag2> some text </tag2>
</tag1>

修改为:

<tag1 attr="myAttr">
<tag2 attr="myAttr"> some text </tag2>
</tag1>

答案:

虽然很想使用对于此任务使用正则表达式,这是不可取的。 XML 不是常规语言,尝试在其上使用正则表达式可能会导致意外结果。相反,我们建议使用 PHP 的 XML 扩展:

<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>

此方法可确保正确修改所有 XML 标记,避免在 XML 上使用正则表达式的潜在陷阱。

以上是如何使用正则表达式或 PHP XML 扩展向所有 XML 标签添加属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn