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"

и т д


Откуда они берутся?
  • Вопрос задан
  • 542 просмотра
Решения вопроса 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 могут быть другими либо отсутствовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект
23 апр. 2024, в 18:47
10000 руб./за проект