Задача:
Для того чтобы реализовать каталог я хочу экспортировать категории и посты.
Я делаю эскпорт справочника из 1С в dbf
Далее dbf -> xml
Допутим получаю такой файл
[code- <?xml version="1.0"?>
<Information>
<Record>
<CODE>12969</CODE>
<DESCR>Соед.шина 100/3</DESCR>
<PARENT>12967</PARENT>
<GROUP></GROUP>
<FULLDESCR>Соед.шина 100/3</FULLDESCR>
<NDS>8</NDS>
<NP></NP>
</Record>
</Information>[/code]
И пытаюсь изменить формат пригодный для экспорта в wordpress, так
<?php
// открытие XML-файла
$xml = simplexml_load_file('export.xml');
// собираем категории
$i=0;
foreach($xml->Information->Record as $rec)
{
if($rec->GROUP==1)
{
$glav['Name'][$i]=(string)$rec->DESCR;
$glav['id'][$i]=(string)$rec->CODE;
$glav['PARENT'][$i]=(string)$rec->PARENT;
$i++;
}
}
// открываем выходной файл и заносим шапку
$fw=fopen('output.xml', 'w');
fwrite($fw, '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
');
// заносим категории в файл
for($i=0; $i<count($glav['id']); $i++)
{
if($glav['PARENT'][$i]!='' and in_array($glav['PARENT'][$i], $glav['id']))
{
$glav['PARENT'][$i]=$glav['Name'][pos(array_keys($glav['id'], $glav['PARENT'][$i]))];
}
fwrite($fw, '<wp:category><wp:category_parent>'.$glav['PARENT'][$i].'</wp:category_parent><wp:cat_name>'.$glav['Name'][$i].'</wp:cat_name></wp:category>
');
}
// присваиваем постам имена их категорий вместо цифрового значения
$i=0;
foreach($xml->Information->Record as $rec)
{
if($rec->GROUP=='')
{
$det['Name'][$i]=(string)$rec->FULLDESCR;
$det['PARENT'][$i]=(string)$rec->PARENT;
$i++;
}
}
// заносим наши посты
for($i=0; $i<count($det['Name']); $i++)
{
if($det['PARENT'][$i]!='' and in_array($det['PARENT'][$i], $glav['id']))
{
$det['PARENT'][$i]=$glav['Name'][pos(array_keys($glav['id'], $det['PARENT'][$i]))];
}
fwrite($fw, '
<item>
<title>'.$det['Name'][$i].'</title>
<category>'.$det['PARENT'][$i].'</category>
<content:encoded><![CDATA['.$det['Name'][$i].']]></content:encoded>
<wp:status>publish</wp:status>
<wp:post_type>post</wp:post_type>
</item>');
}
fwrite($fw, '</channel>
</rss>');
fclose($fw);
?>
Но код выходной файл получается такой
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
<item>
<title></title>
<category></category>
<content:encoded><![CDATA
]></content:encoded>
<wp:status>publish</wp:status>
<wp:post_type>post</wp:post_type>
</item></channel>
</rss>
Т.е. пустые значения
Весь день с кодом колупаюсь и нет результа
Просьба помогите люди добрые!
Где ошибка?
Или возможно есть более простые:) способы решить задачу?
ps код не мой. взято здесь http://wp4you.ru/experimenti_s_wordpress/iz-1s-v-wordpress.html
У меня скрипт заработал с приведённым файлом после замены $xml->Information->Record на $xml->Record в строках 7 и 45.