修改XML属性PHP DOM

Kem*_*rop 2 php xml

我有一个看起来像这样的XML文件.

<collections id="my collections">
 <category id="my category">
   <record id="my record">
     <title>Some Info</title>
   </record>
 </category>
</collections>
Run Code Online (Sandbox Code Playgroud)

我正在寻找使用新的属性,使用PHP DOM和Xpath替换上述XML文件中的任何属性.任何帮助都非常感谢

Pas*_*TIN 5

不确定你想要做什么,但一般的想法是:


例如,您可以使用以下内容:

$str = <<<XML
    <collections id="My Collections">
     <category id="my category">
       <record id="my record">
         <title>Some Info</title>
       </record>
     </category>
    </collections>
XML;

$dom = new DOMDocument();
$dom->loadXML($str);

$xpath = new DOMXPath($dom);
$elements = $xpath->query('//record[@id="my record"]');
if ($elements->length >= 1) {
    $element = $elements->item(0);
    $element->setAttribute('id', "glop !");
}
echo '<pre>' . htmlspecialchars($dom->saveXML()) . '</pre>';
Run Code Online (Sandbox Code Playgroud)


这将在由它标识的节点上用" " 替换id属性my record,glop !并且您将获得以下XML作为输出:

<?xml version="1.0"?>
<collections id="My Collections">
     <category id="my category">
       <record id="glop !">
         <title>Some Info</title>
       </record>
     </category>
    </collections>
Run Code Online (Sandbox Code Playgroud)