php генерирует xml, добавляя текст внутри цикла foreach - PullRequest
0 голосов
/ 23 мая 2011

Я хочу создать динамический XML для отправки в веб-сервис.У меня есть цикл php foreach внутри XML.Но я не могу понять синтаксис правильно.

Мне нужно, чтобы строка выглядела следующим образом -

<?xml version=1.0" encoding="ISO-8859-1">
<inventoryUpdateRequest version="1.0">
<action name="bookupdate">
</action>
<SiteNameList>
<SiteName>
<vendorBookID>123456</vendorBookID>
</SiteName>
<SiteName>
<vendorBookID>788901</vendorBookID>
</SiteName>
</SiteNameList>
</inventoryUpdateRequest>

The <SiteName>...</SiteName> is looped for each value found.

Мой код пока таков -

<?php 
$xml =
'<?xml version="1.0" encoding="ISO-8859-1">
<inventoryUpdateRequest version="1.0">
<action name="bookupdate">
</action>
<SiteNameList>
'.
$ids_orderlineitem_portal_rownum = 1;
foreach($ids_row['order_line_item::bookID'] as  $ids_orderlineitem_portal_row=>$ids_orderlineitem_portal)
{
.'
<SiteName>
<vendorBookID>
'.$ids_row['order_line_item::bookID'][$ids_orderlineitem_portal_row].'
</vendorBookID>
</SiteName>
'.if($ids_orderlineitem_portal_rownum == 0) break; else  $ids_orderlineitem_portal_rownum++;
}//portal_end
.'
</SiteNameList>
</inventoryUpdateRequest>'
;
$url ='https://inventoryupdate.sitename.com';
$port = 80;

$response = xml_post($xml, $url, $port);    
?>

Помогите?Как я могу получить цикл для вывода нужного мне формата?

1 Ответ

1 голос
/ 23 мая 2011

Трудно понять, сработает ли это, потому что я не знаю, в каком формате находятся входные данные, но, надеюсь, это должно сработать или, по крайней мере, приблизиться к тому, что вам нужно:

<?php 
    $xml =
    '<?xml version="1.0" encoding="ISO-8859-1">
    <inventoryUpdateRequest version="1.0">
    <action name="bookupdate">
    </action>
    <SiteNameList>';
    foreach($ids_row['order_line_item::bookID'] as  $book_id)
    {
        $xml .= '
        <SiteName>
        <vendorBookID>
        '.$book_id.'
        </vendorBookID>
        </SiteName>';
    }//portal_end
    $xml .= '
    </SiteNameList>
    </inventoryUpdateRequest>'
    ;

    $url ='https://inventoryupdate.sitename.com';
    $port = 80;

    $response = xml_post($xml, $url, $port);    
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...