У меня есть XML URI с несколькими определениями схемы. Выглядит это так
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ODataService">
<EntityType Name="OpenHouse">
<Key>
<PropertyRef Name="OpenHouseKey"/>
</Key>
<Property Name="AppointmentRequiredYN" Type="Edm.Boolean">
<Annotation Term="Core.Description" String="Indicates whether or not the OpenHouse requires an appointment."/>
</Property>
<Property Name="BridgeModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
<Annotation Term="Core.Description" String="A timestamp representing when last this listing was modified"/>
</Property>
<Property Name="ListingId" Type="Edm.String" MaxLength="255">...</Property>
<Property Name="ListingKey" Type="Edm.String" MaxLength="255">...</Property>
<Property Name="ListingKeyNumeric" Type="Edm.Int64">...</Property>
<Property Name="ModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
<Annotation Term="Core.Description" String="The transactional timestamp automatically recorded by the MLS system representing the date/time the Open House was last modified."/>
</Property>
<Property Name="OpenHouseAttendedBy" Type="OpenHouseEnums.OpenHouseAttendedBy">
<Annotation Term="Core.Description" String="Will the open house be attended by a licensed agent? Options are attended by agent, attended by the seller or unattended."/>
</Property>.
.
.
.
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Файл является ответом от API (с токеном аутентификации), поэтому я не могу опубликовать URL, а также слишком велик, чтобы разместить его здесь.
ТамЕсть несколько определений схемы http://prntscr.com/ppaynh
Я хочу проанализировать этот URI и для каждой схемы получить все EntityType с его свойствами и атрибутами. Я пытался использовать подобный код, но мой опыт работы с XML ограничен.
if (($response_xml_data = file_get_contents($url))===false){
echo "Error fetching XML\n";
} else {
libxml_use_internal_errors(true);
$data = simplexml_load_string($response_xml_data);
if (!$data) {
echo "Error loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
} else {
var_dump($data);
}
}
Как я могу получить этот XML в массив? Спасибо