0
XML単純なオブジェクトを作成しようとしていますが、定義されていないドメインについてはエラーが発生し続けます。私が見たすべての例では、XMLファイルに定義されているいくつかのタイプのURLがありますが、CURL呼び出しから受け取るXMLにはこれらのURLはありません。XML名前空間を定義する方法
<?xml version="1.0" encoding="UTF-8" ?>
<Items>
<Item>
<ActivityName>Faculty Lecture</ActivityName>
<ParentActivityName>Faculty Lecture</ParentActivityName>
<Description></Description>
<StartDate>2/1/2017 12:00:00 AM</StartDate>
<EndDate>2/1/2017 12:00:00 AM</EndDate>
<StartMinute>990</StartMinute>
<EndMinute>1080</EndMinute>
<CampusName>MAIN</CampusName>
<BuildingCode>LIB</BuildingCode>
<RoomNumber>105</RoomNumber>
<RoomName>News Events Room</RoomName>
<Customer:EventMeetingByActivityId.Event.Customer.Name>Library</Customer:EventMeetingByActivityId.Event.Customer.Name>
<ContactFirstName:EventMeetingByActivityId.Event.PrimaryCustomerContact.Person.FirstName>Jane</ContactFirstName:EventMeetingByActivityId.Event.PrimaryCustomerContact.Person.FirstName>
<ContactLastName:EventMeetingByActivityId.Event.PrimaryCustomerContact.Person.LastName>Doe</ContactLastName:EventMeetingByActivityId.Event.PrimaryCustomerContact.Person.LastName>
<MeetingType:EventMeetingByActivityId.EventMeetingType.Name>Meeting</MeetingType:EventMeetingByActivityId.EventMeetingType.Name>
</Item>
</Items>
警告を投げているコードは次のとおりです。
$data = simplexml_load_string($result);
$data->registerXPathNamespace('Customer', 'https://www.aaiscloud.com/');
$data->registerXPathNamespace('ContactFirstName', 'https://www.aaiscloud.com/');
$data->registerXPathNamespace('ContactLastName', 'https://www.aaiscloud.com/');
$data->registerXPathNamespace('MeetingType', 'https://www.aaiscloud.com/');
$結果を編集してドメインを削除すると、警告が消えてしまいますが、これが賢明なことであるかどうかはわかりません。
$ results(xmlファイル)は、社外から取得したものです。これは 'simplexml_load_string'の前に文字列を操作しなければならないということですか? – blu
宣言されていない名前空間接頭辞を使用する "XML"が提供されている場合、XMLはまったく提供されていません。プロバイダにデータの修正を依頼します。それが不可能な場合は、上記のXMLのツールやライブラリを使用する前に、手動で、またはテキストオブジェクトをXMLでなく、テキストではなくテキスト*として扱い、データを修復する必要がありますそれ。 – kjhughes