
XML File:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<Physical>
<Catalog>
<EquipmentSpec>
<Reference>030_17</Reference>
<Type>Duplexeur</Type>
<Characteristic><CharacteristicName>Tilt</CharacteristicName>
<CharacteristicValue>0</CharacteristicValue></Characteristic>
</EquipmentSpec>
<EquipmentSpec>
<Reference>030_19</Reference>
<Type>Node</Type>
<Characteristic><CharacteristicName>Tilt</CharacteristicName>
<CharacteristicValue>0</CharacteristicValue></Characteristic>
</EquipmentSpec>
</Catalog>
<Installed>
<Equipment>
<Id>26</Id><Reference>MAT_4</Reference>
<Characteristic><CharacteristicName>Height</CharacteristicName><CharacteristicValue>160</CharacteristicValue></Characteristic>
</Equipment>
<Equipment>
<Id>27</Id><Reference>MAT_6890</Reference>
<Characteristic><CharacteristicName>Height</CharacteristicName><CharacteristicValue>180</CharacteristicValue></Characteristic>
</Equipment>
</Installed>
</Physical>
Code: Select all
if (file_exists("test.xml"))
{
$xml = simplexml_load_file("test.xml");
}
else
{
echo "error file";
}
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->validateOnParse = true;
$dom->strictErrorChecking = FALSE ;
@$dom->load($xml);
$xpath = new DOMXpath($dom);
$mtest = fopen("mtest", "w+");
foreach ($xml->Catalog->xpath("EquipmentSpec") as $n => $equipmentspec)
{ // xpath for the numeric key
$equipment = $xml->Installed->Equipment[$n];
$Type = (string)$equipmentspec->Type;
$Id = (int)$equipment->Id;
$Height = (int)current($equipment->xpath("Characteristic[CharacteristicName='Height']/CharacteristicValue")); // a search
echo $Type;
echo $Id;
echo $Height;
$sql = "INSERT INTO machines (`Type`, `Id`, `Height`) VALUES ('{$Type}', {$Id}, {$Height})";
$req = new requete($site->db, $sql);
echo $sql;
}
fclose($mtest);
