Basierend auf dem, was ich gelesen habe, scheint es, als ob die beste Methode zum Parsen von XML in PHP die Methode ist. Jedes Beispiel, das ich fand, bestand aus XML, die unterschiedliche Kindknotennamen haben. In meinem Fall habe ich XML in einem Zeilen-/Wertformat. Ich möchte in der Lage sein, jede einzelne Zeile in ein benutzerdefiniertes Objekt namens 'Job' zu zerlegen. So stellt jeder Zeilenknoten im XML einen "Job" dar und jeder Datenknoten eine Job-Eigenschaft. Was ist der beste Weg, um diese Art von XML in PHP zu analysieren?XML im Zeilen-/Wertformat nach benutzerdefinierten Objekten in PHP analysieren
Hier ein Beispiel für die XML ist, dass ich zu analysieren, ich versuche:
<?xml version="1.0" encoding="utf-8"?>
<dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<!--
<dataset
xmlns="http://developer.cognos.com/schemas/xmldata/1/"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://developer.cognos.com/schemas/xmldata/1/ xmldata.xsd"
>
-->
<metadata>
<item name="RequisitionNumber" type="xs:string" length="52"/>
<item name="Title" type="xs:string" length="52"/>
<item name="City" type="xs:string" length="52"/>
<item name="State" type="xs:string" length="52"/>
<item name="PostalCode" type="xs:string" length="52"/>
<item name="Description" type="xs:string" length="52"/>
<item name="Requirements" type="xs:string" length="52"/>
<item name="ID" type="xs:string" length="52"/>
</metadata>
<data>
<row>
<value>16-1279</value>
<value>Manager</value>
<value>Portland</value>
<value>OR</value>
<value>98660</value>
<value>Manager Description goes here</value>
<value>Requirements go here</value>
<value>45</value>
</row>
<row>
<value>16-1279</value>
<value>Exec</value>
<value>Portland</value>
<value>OR</value>
<value>98660</value>
<value>Exec Description goes here</value>
<value>Exec go here</value>
<value>45</value>
</row>
</data>
</dataset>
Dies ist der Weg, den ich begonnen haben, nach unten:
class Job
{
function __construct($requisitionnumber, $title, $city, $state, $postalcode, $description, $requirements)
{
$this->RequisitionNumber = $requisitionnumber;
$this->Title = $title;
$this->City = $city;
$this->State = $state;
$this->PostalCode = $postalcode;
$this->Description = $description;
$this->Requirements = $requirements;
}
}
function ParseReportResult($xml)
{
$jobs = array();
foreach($xml->row)
{
//How do I parse each data node into the below object?
$job = new Job($requisitionnumber, $title, $city, $state, $postalcode, $description, $requirements);
array_push($jobs, $job);
}
return $jobs;
}