Besides the simple XML parsing as following link:
parsing interactive broker fundamental data
I got more difficult situations in XML parsing:
Two main errors:
- string indices must be integers 
- list indices must be integers or slices, not str 
XML =
<ReportSnapshot Major="1" Minor="0" Revision="1">
    <CoIDs>
       <CoID Type="RepNo">AC317</CoID>
        <CoID Type="CompanyName">HSBC Holdings plc (Hong Kong)</CoID>
    </CoIDs>
    <Issues>
        <Issue ID="1" Type="C" Desc="Common Stock" Order="1">
            <IssueID Type="Name">Ordinary Shares</IssueID>
            <IssueID Type="Ticker">5</IssueID>
            <IssueID Type="CUSIP">G4634U169</IssueID>
            <IssueID Type="ISIN">GB0005405286</IssueID>
            <IssueID Type="RIC">0005.HK</IssueID>
            <IssueID Type="SEDOL">6158163</IssueID>
            <IssueID Type="DisplayRIC">0005.HK</IssueID>
            <IssueID Type="InstrumentPI">312270</IssueID>
            <IssueID Type="QuotePI">1049324</IssueID>
            <Exchange Code="HKG" Country="HKG">Hong Kong Stock Exchange</Exchange>
            <MostRecentSplit Date="2009-03-12">1.14753</MostRecentSplit>
        </Issue>
    </Issues>
    <CoGeneralInfo>
        <CoStatus Code="1">Active</CoStatus>
        <CoType Code="EQU">Equity Issue</CoType>
        <LastModified>2018-07-20</LastModified>
        <LatestAvailableAnnual>2017-12-31</LatestAvailableAnnual>
        <LatestAvailableInterim>2018-03-31</LatestAvailableInterim>
        <Employees LastUpdated="2018-03-31">228899</Employees>
        <SharesOut Date="2018-07-25" TotalFloat="19880413090.0">19949959451.0</SharesOut>
        <ReportingCurrency Code="USD">U.S. Dollars</ReportingCurrency>
        <MostRecentExchange Date="2018-07-25">1.0</MostRecentExchange>
    </CoGeneralInfo>
    <peerInfo lastUpdated="2018-07-20T09:20:26">
        <IndustryInfo>
            <Industry type="TRBC" order="1" reported="0" code="5510101010" mnem="">Banks - NEC</Industry>
            <Industry type="NAICS" order="1" reported="0" code="52211" mnem="">Commercial Banking</Industry>
            <Industry type="NAICS" order="2" reported="0" code="52393" mnem="">Investment Advice</Industry>
            <Industry type="NAICS" order="3" reported="0" code="52392" mnem="">Portfolio Management</Industry>
            <Industry type="SIC" order="0" reported="1" code="6035" mnem="">Federal Savings Institutions</Industry>
            <Industry type="SIC" order="1" reported="0" code="6029" mnem="">Commercial Banks, Nec</Industry>
            <Industry type="SIC" order="2" reported="0" code="6282" mnem="">Investment Advice</Industry>
        </IndustryInfo>
    </peerInfo>
    <Ratios PriceCurrency="HKD" ReportingCurrency="USD" ExchangeRate="7.84530" LatestAvailableDate="2017-12-31">
        <Group ID="Price and Volume">
            <Ratio FieldName="NPRICE" Type="N">74.75000</Ratio>
            <Ratio FieldName="NHIG" Type="N">86.00000</Ratio>
            <Ratio FieldName="NLOW" Type="N">71.45000</Ratio>
            <Ratio FieldName="PDATE" Type="D">2018-07-26T00:00:00</Ratio>
            <Ratio FieldName="VOL10DAVG" Type="N">12.85415</Ratio>
            <Ratio FieldName="EV" Type="N">2455297.00000</Ratio>
        </Group>
        <Group ID="Income Statement">
            <Ratio FieldName="MKTCAP" Type="N">1493871.00000</Ratio>
            <Ratio FieldName="AREV" Type="N">321618.10000</Ratio>
            <Ratio FieldName="AEBITD" Type="N">177727.40000</Ratio>
            <Ratio FieldName="ANIAC" Type="N">86070.79000</Ratio>
        </Group>
    </Ratios>
</ReportSnapshot>
I want to convert this information to CSV format in this format:
CompanyName                     Ticker   Industry type="TRBC" Industry type="NAICS"  LastModified   ReportingCurrency   NPRICE     MKTCAP
HSBC Holdings plc (Hong Kong)    5       Banks - NEC          Commercial Banking       2018-07-20      USD              74.75000   1493871.00000
 
     
    
