Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: SimpleXML и получение атриботов, через ( | )
Форумы портала PHP.SU » » XML и его обработка » SimpleXML и получение атриботов, через ( | )

Страниц (1): [1]
 

1. DlTA - 26 Апреля, 2013 - 11:21:03 - перейти к сообщению
имеем сохраненный из Excel xml файл, подгружаем его в SimpleXML
и беготня по элементам работает стабильно

НО вот получение арттибутов хромает,
а именно приходится делать вот такой финт ушами

PHP:
скопировать код в буфер обмена
  1. $item = @simplexml_load_string($simXmlCel->asXML());
  2. $attributes = $item->attributes();


сделать просто
$simXmlCel->attributes(); не возвращает ничего,

а подавление ошибок приходится ставить из за ругни парсера на неопределенные пространства имен "<Cell ss:StyleID="s69"/>"

может как то не так парсю?
2. EuGen - 26 Апреля, 2013 - 11:33:04 - перейти к сообщению
DlTA пишет:
<Cell ss:StyleID="s69"/>

Не увидел здесь проблемы с присутствующим в заголовке темы разделителем (то есть "|"). Природа $simXmlCel не очевидна. Если это не объект simplexml - то, очевидно, нужно сначала его передать парсеру - и тогда - в чём вопрос?
3. DlTA - 26 Апреля, 2013 - 11:42:04 - перейти к сообщению
EuGen пишет:
(то есть "|")
это не разделитель, ото часть чел. тела

а проблема как таковая в необходимости делать финт ушами, в противном случае нет результата (финт описан в 1 посте)
4. KingStar - 26 Апреля, 2013 - 12:39:13 - перейти к сообщению
помню что-то было подобное у меня, проблема вся в том, что у атрибут должен быть не ss:StyleID, а просто StyleID, т.е. не должнео быть в названии атрибута символа двоеточия ":"

решал просто - удалял в N++ все эти ss:
5. DlTA - 26 Апреля, 2013 - 12:53:05 - перейти к сообщению
KingStar пишет:
решал просто - удалял в N++ все эти ss:

в моем случае не ахти вариант, мой мне больше нравится.
6. KingStar - 26 Апреля, 2013 - 12:56:27 - перейти к сообщению
ну если ты делаешь загрузку файла, и потом парсишь, то вполне можешь удалить все на уровне php при загрузке одним махом
(Добавление)
я просто обозначил причину, почему не парсит атрибут вида ss:StyleID

 

Powered by ExBB FM 1.0 RC1