%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/yiisoft/yii2-httpclient/src/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/yiisoft/yii2-httpclient/src/XmlParser.php |
<?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ namespace yii\httpclient; use yii\base\BaseObject; /** * XmlParser parses HTTP message content as XML. * * @author Paul Klimov <klimov.paul@gmail.com> * @since 2.0 */ class XmlParser extends BaseObject implements ParserInterface { /** * {@inheritdoc} */ public function parse(Response $response) { $contentType = $response->getHeaders()->get('content-type', ''); if (preg_match('/charset=(.*)/i', $contentType, $matches)) { $encoding = $matches[1]; } else { $encoding = 'UTF-8'; } $dom = new \DOMDocument('1.0', $encoding); $dom->loadXML($response->getContent(), LIBXML_NOCDATA); return $this->convertXmlToArray(simplexml_import_dom($dom->documentElement)); } /** * Converts XML document to array. * @param string|\SimpleXMLElement $xml xml to process. * @return array XML array representation. */ protected function convertXmlToArray($xml) { if (is_string($xml)) { $xml = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); } $result = (array) $xml; foreach ($result as $key => $value) { if (!is_scalar($value)) { $result[$key] = $this->convertXmlToArray($value); } } return $result; } }