Jakoś problemu nie widzę, jeżeli operujesz TYLKO na plikach to:
1. stwórz sobie jakiś plik w którym trzymasz TYLKO I WYŁĄCZNIE ID np:
id.txt o zawartości:
Kod
158
2. Teraz, podczas odpalenia skryptu php generującego XML robisz coś takiego:
a ) czytasz zawartość pliku id.txt i tą zawartość zapisujesz do zmiennej, na przykład $id (w podanym przykładzie $id, a właściwie jej wartość będzie równa 158),
b ) tworzysz przykładowy kod(można oczywiście zmodyfikować):
<?
header('Content-type: application/xml; charset="utf-8"'); //ładujesz treść "id.txt" do zmiennej $id
echo'<?xml version="1.0" encoding="utf-8"?>'."\n"; echo' <cos_2>'.$zmienna.'</cos_2>'."\n"; $i=3;
while($i<$id)
{
echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n"; $i++;
}
// czymś to wypełniasz...
// jak skończyłeś, czy też zapisałeś plik zwiększasz $id o 1 i zapisujesz do pliku id.txt nowe id
?>
Co wsadzisz do środka to Twoja inwencja, to jest tylko przykład - w tej formie możesz wyświetlić go na stronie
TUTAJ masz przykład.
Oczywiście plik id.txt jest opcjonalny, możesz stworzyć plik .php i w nim trzymać zmienną, oraz ładować ją poprzez
<?require("twoj_plik.php");?>
Musisz pamiętać o tym aby po każdym wywołaniu pliku generującego, a właściwie po zakończeniu jego pracy zwiększać/zmniejszać (czy co tam uznasz za stosowne) zmienną w tym pliku (oczywiście skryptem, chyba że wolisz ręcznie

).
// MASS EDIT
Przykładowo kod w podanym wyżej linku wygląda tak:
<?
header('Content-type: application/xml; charset="utf-8"'); $zmienna = "bla bla bla";
$id = 10;
echo'<?xml version="1.0" encoding="utf-8"?>'."\n"; echo' <cos_2>'.$zmienna.'</cos_2>'."\n"; $i=3;
while($i!=$id)
{
echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n"; $i++;
}
$i=3;
while($i!=$id)
{
echo' <cos_'.$i.'>'.$zmienna.'</cos_'.$i.'>'."\n"; $i++;
}
// jak skończyłeś, czy też zapisałeś plik zwiększasz $id o 1 i zapisujesz do pliku id.txt nowe id
?>
a efektem jest:
<?xml version="1.0" encoding="utf-8"?>
<bla_bla>
<cos_1>
<cos_2>bla bla bla</cos_2>
<cos_3>bla bla bla</cos_3>
<cos_4>bla bla bla</cos_4>
<cos_5>bla bla bla</cos_5>
<cos_6>bla bla bla</cos_6>
<cos_7>bla bla bla</cos_7>
<cos_8>bla bla bla</cos_8>
<cos_9>bla bla bla</cos_9>
</cos_1>
<coss_1>
<cos_3>bla bla bla</cos_3>
<cos_4>bla bla bla</cos_4>
<cos_5>bla bla bla</cos_5>
<cos_6>bla bla bla</cos_6>
<cos_7>bla bla bla</cos_7>
<cos_8>bla bla bla</cos_8>
<cos_9>bla bla bla</cos_9>
</coss_1>
</bla_bla>
Tak na przyszłość - jeżeli skrobiesz XML ręcznie (tak jak w tym przykładzie) to odradzam coś takiego:
<?
$a='<cell>';
$b='</cell>';
$c='<rows>';
$c1='</rows>';
$d='<row id="';
?>
I proponuję zastąpić to podanym przeze mnie przykładem. Dlaczego? Odpowiedź jest prosta, nie zgubisz się w znacznikach (w wypadku błędu którego ciężko znaleźć).