joost

Рейтинг
844
Регистрация
08.06.2006
lutskboy:
что то там не видно чтоб начиналось с xml

начинается как нужно

Sitealert:
По-видимому, это образец записи.

именно так

Что то не то

 while($reader->read()) {


if($reader->nodeType == XMLReader::ELEMENT) {

if($reader->localName == 'offer') {
$k++;

$data[$k]['id'] = $reader->getAttribute('id');

}

}

if($reader->localName == 'article') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['article'] = $reader->value;
}

}

if($reader->localName == 'categoryId') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['categoryId'] = $reader->value;
}

}


if($reader->localName == 'currencyId') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['currencyId'] = $reader->value;
}

}


if($reader->localName == 'description') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['description'] = $reader->value;
}

}

if($reader->localName == 'model') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['model'] = $reader->value;
}

}


if($reader->localName == 'name') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['name'] = $reader->value;
}

}


if($reader->localName == 'oldprice') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['oldprice'] = $reader->value;
}

}

while ($reader->localName == 'param') {

if($reader->nodeType == XMLReader::ELEMENT) {
$data[$k]['param'].= "*".$reader->getAttribute('name').":";
}
$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['param'].= $reader->value."";
}
}

if($reader->localName == 'picture') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['picture'] = $reader->value;
}

}


if($reader->localName == 'price') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['price'] = $reader->value;
}

}


if($reader->localName == 'url') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['url'] = $reader->value;
}

}

if($reader->localName == 'vendor') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['vendor'] = $reader->value;
}

}
if (count($data[$k])>=11) print $k."-".$data[$k]['id']."\n";
if ($k==12) break;

}

Выдает


1-0247453
1-0247453
1-0247453
1-0247453
1-0247453
1-0247453
2-0680064
2-0680064
2-0680064
2-0680064
2-0680064
2-0680064
3-0852793
3-0852793
3-0852793
3-0852793
3-0852793
3-0852793
3-0852793
4-0854905
4-0854905
4-0854905
4-0854905
4-0854905
4-0854905
4-0854905
5-0872678
5-0872678
5-0872678
5-0872678
5-0872678
5-0872678
6-0919188
6-0919188
6-0919188
6-0919188
6-0919188
6-0919188
6-0919188
7-0953103
7-0953103
7-0953103
7-0953103
7-0953103
7-0953103
7-0953103
8-0967998
8-0967998
8-0967998
8-0967998
8-0967998
8-0967998
8-0967998
9-0982546
9-0982546
9-0982546
9-0982546
9-0982546
9-0982546
9-0982546
10-1418332
10-1418332
10-1418332
10-1418332
10-1418332
10-1418332
10-1418332
11-1812662
11-1812662
11-1812662
11-1812662
11-1812662
11-1812662
11-1812662

по 7 раз один и тот же элемент "видит"

Что не так?

while ($reader->localName == 'param') {

$reader->read();

после while $reader->read(); не нужно

tommy-gung:
какая ошибка?

сначала писало, что памяти не хватает

увеличил

начало что-то другое писать

уже не помню

начал с XMLReader переписывать

---------- Добавлено 27.12.2016 в 14:30 ----------

Контент

<offer available="true" id="O14112180643" type="vendor.model"><article>640295700752999</article><categoryId>1401000</categoryId><currencyId>RUR</currencyId><description>Комфортные треггинсы, содержат эластан для идеальной посадки, изделие дополнено кружевными вставками, широкий эластичный пояс, узкий крой штанин</description><model>Брюки Tom Tailor 640295700752999</model><modified_time>1482808144</modified_time><name>Брюки Tom Tailor 640295700752999</name><oldprice>4999</oldprice><param name="Пол">Женский</param><param name="Цвет">черный</param><param name="Размер" quantity="2" type="size" unit="EU">34/32</param><picture>http://tom-tailor-online.ru/images/P0/02/07/98/99/brjuki-tom-tailor-chernyjj-640295700752999-1b.jpg</picture><picture>http://tom-tailor-online.ru/images/P0/02/07/98/99/brjuki-tom-tailor-chernyjj-640295700752999-2b.jpg</picture><picture>http://tom-tailor-online.ru/images/P0/02/07/98/99/brjuki-tom-tailor-chernyjj-640295700752999-3b.jpg</picture><price>1500</price><topseller>false</topseller><topseller>false</topseller><url>https://ad.admitad.com/g/641a4c7cc1e181aacf623d89878ee1/?i=5&amp;ulp=http%3A%2F%2Ftom-tailor-online.ru%2Fshop%2Fproduct%2Fbrjuki-tom-tailor-640295700752999</url><vendor>tom tailor</vendor><vendorCode>640295700752999</vendorCode></offer>

while($reader->read()) {


if($reader->nodeType == XMLReader::ELEMENT) {

if($reader->localName == 'offer') {
$k++;

$data[$k]['id'] = $reader->getAttribute('id');

}

}

if($reader->localName == 'article') {

$reader->read();
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['article'] = $reader->value;
}

}

while ($reader->localName == 'param') {
$reader->read();
if($reader->nodeType == XMLReader::ELEMENT) {
$data[$k]['param'].= $reader->getAttribute('name')."!";

}
if($reader->nodeType == XMLReader::TEXT) {
$data[$k]['param'].= ":".$reader->value."|";
}
}
if ($k==10) break;
}


print_r($data);

Результат

[1] => Array
(
[id] => O13121909413
[article] => 879200102010
[param] => :Мужской|Цвет!:меланж|Размер!:L/6|!
)

Не берет первого атрибута

Не видит его

Не понимаю почему

tommy-gung:
сколько весит?

под 300 метров

tommy-gung:
куда, как, чем загрузить?

837 записей - ни о чем

в бд

скриптом пхп используя SimpleXML

837 тысяч записей

SeVlad, по wp-includes/kses.php согласен

а по файлах темы как быть?

спасибо!

SeVlad:
А сравнить с оригиналом - уже и на это ума не хватает?

так той версии темы нет у меня

Sitealert:
запрос-то идёт на конкретный URL, а там - сайт

та сервер апи

Sitealert:
Вот и смотрите на нём, какой запрос прокатит

это понятно

какие варианты запросов пробовать - вот в чем проблема

какие значение для $query и $vendor присваивать?

Sitealert:
Ну так посмотрите на том сайте, откуда выбираются товары

это не из сайта, а из БД чужой выборка

к ней доступа у меня нет

---------- Добавлено 22.12.2016 в 12:15 ----------

Sitealert:
товар без названия - нонсенс

у товара есть название, бренд, модель

если названия нет - точнее не указано, то оно формируется как бренд + модель

---------- Добавлено 22.12.2016 в 12:16 ----------

Sitealert:
по запросу с пустым названием

оно то так, но как оказывается '' - не считается пустым названием

Всего: 3839