Всем привет. Ребят, помогите разобраться Есть XML файл, выглядит он вот так (скриншот): https://yadi.sk/i/hIxWWrlQ3YJTHt Во вложении также есть этот скриншот. Помогите, подскажите как из этого XML-документа получить значение узла, где <FL val="Mobile"> ?? Т.е. мне нужно получить значение 81234567890 Сейчас вот что у меня есть: в $get_data содержится сам XML-файлик PHP: $response = new SimpleXMLElement($get_data); header("Content-type: text/html"); $element = $response->xpath('/response/result/Leads/row'); echo '<pre>'; var_dump($element); echo '</pre>' ; В результате на странице появляется вот это: Код (Text): array(1) { [0]=> object(SimpleXMLElement)#2 (2) { ["@attributes"]=> array(1) { ["no"]=> string(1) "1" } ["FL"]=> array(18) { [0]=> string(19) "3333250000000182013" [1]=> string(19) "3333250000000157021" [2]=> object(SimpleXMLElement)#3 (1) { ["@attributes"]=> array(1) { ["val"]=> string(10) "Lead Owner" } } [3]=> object(SimpleXMLElement)#4 (1) { ["@attributes"]=> array(1) { ["val"]=> string(7) "Company" } } [4]=> object(SimpleXMLElement)#5 (1) { ["@attributes"]=> array(1) { ["val"]=> string(10) "First Name" } } [5]=> object(SimpleXMLElement)#6 (1) { ["@attributes"]=> array(1) { ["val"]=> string(9) "Last Name" } } [6]=> object(SimpleXMLElement)#7 (1) { ["@attributes"]=> array(1) { ["val"]=> string(5) "Email" } } [7]=> object(SimpleXMLElement)#8 (1) { ["@attributes"]=> array(1) { ["val"]=> string(5) "Phone" } } [8]=> object(SimpleXMLElement)#9 (1) { ["@attributes"]=> array(1) { ["val"]=> string(6) "Mobile" } } [9]=> string(19) "3333250000000157021" [10]=> object(SimpleXMLElement)#10 (1) { ["@attributes"]=> array(1) { ["val"]=> string(10) "Created By" } } [11]=> string(19) "3333250000000157021" [12]=> object(SimpleXMLElement)#11 (1) { ["@attributes"]=> array(1) { ["val"]=> string(11) "Modified By" } } [13]=> object(SimpleXMLElement)#12 (1) { ["@attributes"]=> array(1) { ["val"]=> string(12) "Created Time" } } [14]=> object(SimpleXMLElement)#13 (1) { ["@attributes"]=> array(1) { ["val"]=> string(13) "Modified Time" } } [15]=> object(SimpleXMLElement)#14 (1) { ["@attributes"]=> array(1) { ["val"]=> string(9) "Full Name" } } [16]=> object(SimpleXMLElement)#15 (1) { ["@attributes"]=> array(1) { ["val"]=> string(13) "Email Opt Out" } } [17]=> object(SimpleXMLElement)#16 (1) { ["@attributes"]=> array(1) { ["val"]=> string(18) "Last Activity Time" } } } } } Но тут даже значений узлов нет, только названия атрибутов узлов. Помогите пожалуйста. Подскажите, как получить узел, с атрибутом Mobile?? На скриншоте выделил.
А как быть, если я уже получаю готовый XML - документ в браузер? Мне этот XML-файлик приходит уже в готовом виде (на скриншоте) в браузер, далее мне надо как то тобраться до нужного узла в этом файлике, и до нужного значения. simplexml_load_file() интерпретирует XML-файл в объект SimpleXML, мне это не подходит, но я могу получить этот объект использовав $response = new SimpleXMLElement($get_data); $get_data - это XML-документ, который мне отдаёт внешняя API: https://www.zoho.com/crm/help/api/ simplexml_load_string() мне тоже не подходит, т.к. у меня нет "строки", а есть уже готовый XML-документ, который мне отдала API.
Не знаю о чем ты. У меня все работает PHP: // $foo=simplexml_load_string($get_data); $foo = simplexml_load_string('<foo><content><![CDATA[Hello, world!]]></content></foo>'); echo $foo->content;
PHP: $foo=simplexml_load_string('<foo><content val="mobile"><![CDATA[Hello, world!]]></content></foo>'); foreach ($foo->content as $content) { if((string)$content['val'] === 'mobile') echo $content; }