Je ne sais pas ce que vous voulez faire exactement, mais l'idée générale est la suivante:
- Vous devez instancier
DOMDocument
- et charger vos chaînes XML avec elle:
DOMDocument::loadXML
- Ensuite, vous devez instancier
DOMXpath
sur ce document
- Et l'utiliser pour interroger le document:
DOMXPath::query
- Celui que vous avez trouvé le nœud qui vous intéresse, vous pouvez le manipuler
Ici, par exemple, vous pourrait utiliser quelque chose comme ceci:
$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>';
cela remplacera la id
attribut my record
, sur le nœud qui est identifié par elle, par « glop !
», et vous obtiendrez le code XML suivant en sortie:
<?xml version="1.0"?>
<collections id="My Collections">
<category id="my category">
<record id="glop !">
<title>Some Info</title>
</record>
</category>
</collections>