Skip to Content
Menu
This question has been flagged
2528 Views

Dear all,

Good day.

I am building an xml file using lxml on Odoo12.
On the final result, I get all data on the same lines, like:

<AuditFile xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.01_01"><Header xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.01_01"><AuditFileVersion>1.01_01</AuditFileVersion><CompanyID>REG102.2548</CompanyID><TaxRegistrationNumber>1234567890</TaxRegistrationNumber><TaxAccountingBasis>F</TaxAccountingBasis><CompanyName>My Company</CompanyName><BusinessName> </BusinessName><CompanyAddress><BuildingNumber> </BuildingNumber><StreetName>Endreço da empresa</StreetName><City>Setubal</City><PostalCode> </PostalCode><Country>PT</Country></CompanyAddress>
<FiscalYear>2019</FiscalYear><StartDate>2019-10-20</StartDate><EndDate>2019-10-20</EndDate><CurrencyCode>PT</CurrencyCode><DateCreated>2019-10-20</DateCreated><TaxEntity>Global</TaxEntity><ProductCompanyTaxID>507477758</ProductCompanyTaxID><SoftwareValidationNumber>0</SoftwareValidationNumber><ProductID>Odoo</ProductID><ProductVersion>12</ProductVersion><HeaderComment>Odoo - OpenSource #1</HeaderComment><Telephone> </Telephone><Fax> </Fax><Email>info@yourcompany.com</Email><Website>http://www.yourcompany.com</Website></Header>
</AuditFile>

How can I get the results on a more clear and readable format with an element per line, like:

   <AuditFile xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.01_01">
      <Header xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.01_01">
         <AuditFileVersion>1.01_01</AuditFileVersion>
            <CompanyID>REG102.2548</CompanyID>
            <TaxRegistrationNumber>1234567890</TaxRegistrationNumber>
            <BusinessName> </BusinessName>
            <CompanyAddress>
                 <BuildingNumber> </BuildingNumber>
                 <PostalCode> </PostalCode>
                 <Country>PT</Country>
            </CompanyAddress>
            <FiscalYear>2019</FiscalYear>
            <TaxEntity>Global</TaxEntity>
            <ProductCompanyTaxID>507477758</ProductCompanyTaxID>
            <SoftwareValidationNumber>0</SoftwareValidationNumber>
            <ProductID>Odoo</ProductID>
      </Header>
    </AuditFile>

The code I am using for writing the xml is something like:

    #For the root and header element
    root = et.Element("AuditFile", attrib = attrib)
   header = et.SubElement(root, 'Header', xmlns=self.xmlns)
   header.tail = '\n'

    #For the SubElement AuditFileVersion
   et.SubElement(header, 'AuditFileVersion').text='1.01_01'

   #HEADER
   header_block = (
         ('CompanyID', CompanyID),
         ('TaxRegistrationNumber', TaxRegistrationNumber),
         ('TaxAccountingBasis', TaxAccountingBasis),
         ('CompanyName', CompanyName),
         ('BusinessName', BusinessName),
   )
   for tag, value in header_block:
      if value is None :
         continue
      et.SubElement(header, tag).text= value

   #Header | CompanyAddress
   headerCompanyAddress = et.SubElement(header, 'CompanyAddress')
   headerCompanyAddress.tail = '\n'

   header_block = (
         ('BuildingNumber', BuildingNumber),
         ('StreetName', StreetName),
         ('AddressDetail', AddressDetail),
         ('City', City),
         ('PostalCode', PostalCode),
         ('Province', Province),
         ('Country', 'AO'),
   )
   for tag, value in header_block:
      if value is None :
          continue
      et.SubElement(headerCompanyAddress, tag).text= value

...and so on!

Thank you all in advance

Best regards

PM

Avatar
Discard
Related Posts Replies Views Activity
3
May 22
6208
2
Dec 19
3898
1
Jul 19
5135
0
Oct 18
3212
1
Sep 22
6209