问题:
如何使用 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中文网其他相关文章!