Задать вопрос
JohnDaniels
@JohnDaniels

Что значат символы @ и # при разборе xml-файла?

Разбираю XML средствами битрикса, делаю
$objXML = new CDataXML();
$objXML->LoadString(file_get_contents('upload/importfile.xml'));
$arData = $objXML->GetArray();


в $arData получаю месиво

array(1) {
  ["TradeInExport"]=>
  array(2) {
    ["@"]=>
    array(0) {
    }
    ["#"]=>
    array(1) {
      ["Car"]=>
      array(143) {
        [0]=>
        array(2) {
          ["@"]=>
          array(0) {
          }
          ["#"]=>
          array(27) {
            ["InSaleDate"]=>
            array(1) {
              [0]=>
              array(2) {
                ["@"]=>
                array(0) {
                }
                ["#"]=>
                string(10) "11.07.2015"

и т д


Откуда они берутся?
  • Вопрос задан
  • 571 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Qraxin
Это особенность метода GetArray.
Чтобы избавиться от них нужно либо самому собирать массив, либо пересобрать имеющийся.
Я пересобираю так:
foreach($arXml['feed']['#']['entry'] as $keyEntry => $arValue) {
    foreach($arValue['#'] as $sKey => $sVal) {
        if(is_array($sVal[0]['#']['properties'][0]['#'])) {
            foreach($sVal[0]['#']['properties'][0]['#'] as $keyProp => $valProp){
                $arResult[$keyEntry][$keyProp] = $valProp[0]['#'];
            }
        }
    }
}

У вас значения ключей feed, entry, properties могут быть другими либо отсутствовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 160 000 до 250 000 ₽
Greenway Global Новосибирск
от 150 000 до 250 000 ₽