1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <?php
$xml =
<<<XML
<data>
<mainsection title="CPU" id="2">
<section title="Intel Pentium G620">
<entry title="Cores" value="2"/>
<entry title="Threads" value="2"/>
<entry title="Name" value="Intel Pentium G620"/>
<entry title="Code Name" value="Sandy Bridge"/>
<entry title="Package" value="Socket 1155 LGA"/>
<entry title="Technology" value="32nm"/>
<entry title="Specification" value="Intel Pentium CPU G620 @ 2.60GHz"/>
<entry title="Family" value="6"/>
<entry title="Extended Family" value="6"/>
<entry title="Model" value="A"/>
<entry title="Extended Model" value="2A"/>
<entry title="Stepping" value="7"/>
<entry title="Revision" value="D2"/>
<entry title="Instructions" value="MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Intel 64"/>
<entry title="Virtualization" value="Supported, Disabled"/>
<entry title="Hyperthreading" value="Supported, Disabled"/>
<entry title="Fan Speed" value="1981 RPM"/>
<entry title="Bus Speed" value="99.8 MHz"/>
<entry title="Stock Core Speed" value="2600 MHz"/>
<entry title="Stock Bus Speed" value="100 MHz"/>
<entry title="Average Temperature" value="37 °C"/>
</section>
</mainsection>
</data>
XML;
/** @var SimpleXMLElement */
$dom = new SimpleXMLElement($xml);
$data = array();
$main_sections = array('CPU');
$attributes = array('Cores', 'Name', 'Code Name');
foreach($dom as $main) {
$main_title = (string)$main['title'];
if (in_array($main_title, $main_sections, true)) {
$values = array();
foreach($main->children()->children() as $k => $v) {
$title = (string)$v['title'];
if (in_array($title, $attributes, true)) {
$values[$title] = (string)$v['value'];
}
}
if ( ! empty($values)) {
$data[$main_title][] = $values;
}
}
}
print_r($data);
?> |
Partager