Не уверен, что именно вы хотите сделать, но общая идея такова:
- Вы должны создать экземпляр
DOMDocument
- и загрузите в него свои XML-строки:
DOMDocument::loadXML
- Затем вы должны создать экземпляр
DOMXpath
в этом документе
- И использовать его для запроса документа:
DOMXPath::query
- Когда вы нашли интересующий вас узел, вы можете им манипулировать
Вот, например, вы можете использовать что-то вроде этого:
<code>$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()) . '
';
Это заменит атрибут 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>