Код (Text): <debtor-requirements> <debtor gender="MALE"> <min-age>20</min-age> <max-repayment-age>60</max-repayment-age> </debtor> <debtor gender="FEMALE"> <min-age>20</min-age> <max-repayment-age>55</max-repayment-age> </debtor> как через SimpleXML получить "MALE: 20-60" и "FEMALE: 20-55" Спасибо!
Код (PHP): $xml=<<<XML <debtor-requirements> <debtor gender="MALE"> <min-age>20</min-age> <max-repayment-age>60</max-repayment-age> </debtor> <debtor gender="FEMALE"> <min-age>20</min-age> <max-repayment-age>55</max-repayment-age> </debtor> </debtor-requirements> XML; $xml=simplexml_load_string($xml); foreach($xml->debtor as $val) { print_r($val->attributes()); } И т. д. и т. п.
Если порядок следования min-age и max-repayment-age не будет меняться то можно и так Код (PHP): $xml=<<<XML <debtor-requirements> <debtor gender="MALE"> <min-age>20</min-age> <max-repayment-age>60</max-repayment-age> </debtor> <debtor gender="FEMALE"> <min-age>20</min-age> <max-repayment-age>55</max-repayment-age> </debtor> </debtor-requirements> XML; function get_values($xml, $gender){ $xml = new SimpleXMLElement($xml); $data = $xml->xpath("/debtor-requirements/debtor[@gender='$gender']/descendant::*/text()"); return array('min-age' => (string)$data[0], 'max-repayment-age' => (string)$data[1]); } print_r(get_values($xml, 'MALE'));
Код (PHP): $xml=new SimpleXMLElement($xml); foreach($xml->debtor as $val) { $array=(array)$val; echo nl2br($val->attributes()[0].': '.$array['min-age'].' - '.$array['max-repayment-age'].' '); } /* MALE: 20 - 60 FEMALE: 20 - 55 */
Код (PHP): foreach($xml->link as $val) { $val=$val->attributes(); if('logo'==$val->rel) { echo $val->href; } }