php5 + xml. Как достать атрибут?

S
На сайте с 22.04.2009
Offline
1
2254

<category id="1099615" >Название категории</category>

Как достать значение id в xml файле?

Про разбор xml я разобрался - /ru/forum/comment/2947582,

а вот как достать значение атрибута не знаю - никак не получается

malls
На сайте с 08.08.2005
Offline
255
#1

Поскольку все равно так или иначе все специфичные функции работы с XML, так или иначе, основаны на регулярках - может проще ее и использовать?

preg_match_all() в помощь.

embo
На сайте с 05.12.2008
Offline
24
#2

попробуйте SimpleXML

Плавно двигаемся от сапы к статьям (http://miralinks.ru/users/registration/from:4223)
S
На сайте с 22.04.2009
Offline
1
#3

вот скрипт

<?php

$text='<?xml version="1.0"
encoding="windows-1251"?><html.code><title>название</title></html.code>';
$filePath="file.xml";
$xml = simplexml_load_file($filePath);
$array = (array)$xml;

$cat = $xml->xpath('//category');

foreach ($cat as $elem)
{
далее надо получить атрибут id
}
?>

$elem вот что из себя представляет

SimpleXMLElement Object

(

[@attributes] => Array

(

[id] => 1096721

)

[0] => Категория

)

SimpleXMLElement Object

(

[@attributes] => Array

(

[id] => 1099615

[parentId] => 1096721

)

[0] => Подкатегория 1

)

SimpleXMLElement Object

(

[@attributes] => Array

(

[id] => 1105804

[parentId] => 1099615

)

[0] => Подкатегория 2

)

A
На сайте с 16.11.2008
Offline
12
#4

Используйте simpleXML - и да будет Вам счастие. Получаете объект из элементов. Обращение как к обычным аттрибутам объектов. Все просто.


var_dump($elem->attributes->id);
Пишу на похапэ (/ru/forum/342374). Аудит скриптов. За деньги. Качественно.
S
На сайте с 22.04.2009
Offline
1
#5

Все, сделал. Не знаю насколько эффективно, но результат дает

<?php

$text='<?xml version="1.0"
encoding="windows-1251"?><html.code><title>название</title></html.code>';
$filePath="file.xml";

$xml = simplexml_load_file($filePath);

foreach($xml->xpath('//category') as $cat) {

$mass= $cat->attributes();

echo $mass[id]."<br>";

}
?>

asserte, спасибо за ссылку на мануал

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий