<div dir="ltr"><div>Using PostgreSQL XML functions will be more efficient here, check <a href="http://stackoverflow.com/questions/4967117/create-xml-from-postgresql/10399117#10399117" target="_blank">http://stackoverflow.com/questions/4967117/create-xml-from-postgresql/10399117#10399117</a> for examples.</div>


<div><br></div><div>You can try to do this in Python (by creating SQL selects for every table and then parsing each return row into XML), but for it to work correctly you would basically have to recreate those functions, which will take more effort than just learning how to use them. Choose right tool for the job :-)</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">Konrad<br><br><div class="gmail_quote">On 23 October 2013 15:47, Ismar Sehic <span dir="ltr"><<a href="mailto:i.sheeha@gmail.com" target="_blank">i.sheeha@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hello all.i have a quite big task, but i have a feeling it could be easily solved using python.<br>


</div>The thing is, i need to export the whole company DB(Postgresql) to an XML template provided by another company.<br>
</div>the template looks like this(just a fragment) : <br><br>?xml version="1.0" encoding="utf-8"?><br><PropertyDetailsRS><br>  <Hotel><br>    <AgencyId /><br>    <AgencyCode /><br>



    <GiataCode /><br>    <Name /><br>    <Descriptions><br>      <Description Lang="DE"><br>        <Common /><br>        <ShortDescription /><br>        <LongDescription /><br>



        <Miscellaneous /><br>        <Location /><br>        <Interieur /><br>        <ImportantRemark /><br>      </Description><br>    </Descriptions><br>    <Category /><br>    <Country /><br>



    <Region /><br>    <City /><br>    <Zip /><br>    <Address /><br>    <AdditionalAddress /><br>    <Telephone /><br>    <Fax /><br>    <Email /><br>    <Url /><br>    <DestinationAirports><br>



      <IataCode Code="BKK" /><br>    </DestinationAirports><br>  </Hotel><br>  <RoomList><br>    <RoomGroup Id="" Code="" SeaView="" EN="" DE=""><br>



      <RoomDescriptions><br>        <RoomDescription Lang=""><br>          <Description /><br>        </RoomDescription><br>      </RoomDescriptions><br>    </RoomGroup><br>  </RoomList><br>



  <BoardList><br>    <Board Id="" Code="" EN="" DE="" /><br>  </BoardList><br>  ...<br><br><br><br></div>i've never done anything like that.i'm familiar with psycopg2 module, also, i'm familiar with xml parsing(ElementTree, lxml).<br>



</div>is there some way to use the provided xml as a template, then parse all the data according to the template, what is the moyt pythonic way to do this?<br><br></div>Thx.<br><div><div><div><table><tbody><tr><td>
<br></td></tr><tr><th><br></th><td><br></td></tr><tr><th><br></th><td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td>
  </tr>
  

  <tr>
    <th><br></th>
    <td><br></td></tr></tbody></table><br></div></div></div></div>
<br>_______________________________________________<br>
Tutor maillist  -  <a href="mailto:Tutor@python.org" target="_blank">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="https://mail.python.org/mailman/listinfo/tutor" target="_blank">https://mail.python.org/mailman/listinfo/tutor</a><br>
<br></blockquote></div><br></div></div>