1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| $reader = new XMLReader;
$reader->XML('<root>' . $source . '</root>');
$result = array();
while ($reader->read()) {
if ($reader->nodeType === XMLReader::ELEMENT && $reader->name === 'div') {
if (!($class = $reader->getAttribute('class'))) continue;
if (strpos($class, 'h3') !== false) {
$title = $reader->readString();
list($label, $sep) = array('', '');
} elseif (strpos($class, 'label') !== false) {
$label = $reader->readString();
} elseif (strpos($class, 'value') !== false) {
if (empty($label)) {
@$result[$title] .= $sep . $reader->readString();
$sep = ',';
} else
$result[$title][$label] = $reader->readString();
}
}
}
print_r($result); |