Im пытаясь освоиться в XML-блоке, подобный этому ($ DOC) с помощью PHP simplexml_load_string и с помощью XPath на $ доке, чтобы получить только блок «дня», как это:Как получить содержимое узлов XML, когда имена включают специальные символы?
$myday = $doc->xpath ('//Day');
, что позволяет мне получить доступ ко всем данным от блока как объекта, то есть
$ myday-> AdultCount;
возвращает 1 и
$ myday-> Id;
возвращает "6а0"
однако я не могу получить доступ к "SpecialDeals" содержимое не используется:
$myday->SpecialDeals
, ни с помощью:
$myday->SpecialDeals->a:string
Что является правильным синтаксисом в этом случае ?
<Days>
<DaysId>687</DaysId>
<Day>
<AdultsCount>1</AdultsCount>
<Availability>Available</Availability>
<Id>6a0</Id>
<RoomType>Studio</RoomType>
<SpecialDeals xmlns:a="http://microsoft.com/2003/Arrays">
<a:string>Best Day Ever</a:string>
</SpecialDeals>
</Day>
<DaysPrice>247.4</DaysPrice>
</Days>");
Вы до сих пор не знаете, что 'a:' обозначает префикс пространства имен XML в XML и что вам нужно указать пространство имен рядом с именем элемента в SimpleXML, если оно не находится в пространстве имен по умолчанию. Это распространенный вопрос, и его задавали раньше, позвольте мне привести вам существующий ответ. – hakre
И имейте в виду, что нет специальных символов *, то есть неправильного. Все символы равны. ;) – hakre