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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Доработка xml фида

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
One_Two
Отправлено: 13 Июля, 2015 - 18:07:14
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Добрый день!

Подскажите пожалуйста, есть автоматически создаваемый фид, вида:

<?xml version="1.0" encoding="utf-8"?>
<catalog date="2011-11-06" xmlns="">
<regions>...</regions>
<categories>
<category id="...">...</category>
...
</categories>
<offers>
<offer id="..."><vendor>...</vendor><product>...</product>
<category>...</category>
<url>...</url>
<description></description>
<regions>
<region id="..." price="..." deliveryCost="..." available="...">
</regions>
</offer>
...
</offers>
</catalog>

Нашел кусок кода, который ,как мне кажется, отвечает за построение фида:

$str = '<offer id="' . $param['product_id'] . '">' .
((strlen($param['vendor_name']) > 0)? '<vendor>' . $param['vendor_name'] . '</vendor>' : '') .
'<product>' . $param['name'] . '</product>
<category>' . $arCcode[1] . '</category>
<url>' . $url . '</url>
<description></description>
<regions>
<region id="1" price="' . $param['price'] .'" deliveryCost="' . ((!isset($param['delivery']) || $param['delivery'] == 0)? '0':'1') . '" available="true"/>
</regions>
</offer>';
return $str;

В поле <product> попадаются скобки (например, <product>Какой-то текст (ещё текст(ещё текст2))</product>.
Задача в том, чтобы убрать скобки и перенести содержимое в <description>, если внутри скобок встречаются ещё скобки, то их разнести в поля <field1>, <field2>, ...
Если взять пример, то получается вид такой должен быть:
<product>Какой-то текст</product>
<description>ещё текст</description>
<field1>ещё текст2</description>

Подскажите, что нужно сделать в коде, который отвечает за построение фида, чтобы добиться результата выше?
Заранее благодарю!
 
 Top
difight
Отправлено: 13 Июля, 2015 - 18:18:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




Тут попахивает регулярными выражениями Голливудская улыбка. Терпеть их не могу. Улыбка
 
My status
 Top
esterio
Отправлено: 13 Июля, 2015 - 18:39:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Создавайте XML с помощью simplexml.
 
 Top
One_Two
Отправлено: 14 Июля, 2015 - 12:17:44
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Нашел такой пример на SimpleXML:

<?php // Load and parse the XML document
$rss = simplexml_load_file('http://partners.userland.com/nytRss/nytHomepage.xml');
$title = $rss->channel->title;
?>
<html xml:lang="en" lang="en">
<head>
<title><?php echo $title; ?></title>
</head>
<body>

<h1><?php echo $title; ?></h1>

<?php
// Здесь мы поместим цикл, чтобы включить заголовок элемента и описание
foreach ($rss->channel->item as $item) {
echo "<h2><a href='". $item->link. "'>". $item->title. "</a></h2>";
echo "<p>". $item->description. "</p>";
}
?>

</body>
</html>

По сути я могу брать не $rss = simplexml_load_file('http://partners.userland.com/nytRss/nytHomepage.xml');
а другой путь, например: $myprice = simplexml_load_file('http://путь где находится фид/fid.xml');

и выдрать нужные мне моменты?

Только как именно указать, чтобы он содержимое скобок разносил?

(Отредактировано автором: 14 Июля, 2015 - 12:18:47)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB