Medwoodu
5:07:2006, 12:51
проблема такая: есть DOM документ вида:
<p attrib1 = "1" attrib2 = "2"></p>
<p attrib1 = "3" attrib2 = "4"></p>
с помощью XPath я могу найти узел, в котором есть атрибут(имени я заранее не знаю) со значением например 2.
XP->query("//*[@*='2']");
Можно ли и как найти(вызвать) имя атрибута( =attrib2 )?
Medwoodu
6:07:2006, 04:38
РЕШЕНИЕ НАЙДЕНО$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$XMLSTRING = <<< EOF
<div>
<p attrib1 = "1" attrib2 = "2">r</p>
<p attrib1 = "3" attrib2 = "4">t</p>
</div>
EOF;
$doc->LoadXML($XMLSTRING);
$xpath = new DOMXPath($doc);
$query = "//*[@*='2']";
$entries = $xpath->query($query);
print($XMLSTRING);
foreach ($entries as $entry) {
foreach ($entry->attributes as $attribute) {
if ($attribute->value == '2'){
echo $attribute->name;
};
}
}