Задать вопрос
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"

и т д


Откуда они берутся?
  • Вопрос задан
  • 575 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽