XML import in mySQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML import in mySQL

    Hallo,
    ich habe eine XML Datei, die immer die gleiche Struktur hat, natürlich aber immer verschiedene Daten enthält. Die Struktur der Datei sieht wie folgt aus:

    PHP-Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:element name="FlexQueryResponse">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="FlexStatements">
         <xs:complexType>
          <xs:sequence>
           <xs:element name="FlexStatement">
            <xs:complexType>
             <xs:sequence>
              <xs:element name="AccountInformation">
               <xs:complexType>
                <xs:attribute name="accountId" type="xs:string" use="required"/>
                <xs:attribute name="city" type="xs:string" use="required"/>
                <xs:attribute name="name" type="xs:string" use="required"/>
                <xs:attribute name="postalCode" type="xs:short" use="required"/>
                <xs:attribute name="street" type="xs:string" use="required"/>
               </xs:complexType>
              </xs:element>
              <xs:element name="EquitySummaryInBase">
               <xs:complexType>
                <xs:sequence>
                 <xs:element name="EquitySummaryByReportDateInBase" maxOccurs="unbounded">
                  <xs:complexType>
                   <xs:attribute name="cash" type="xs:decimal" use="required"/>
                   <xs:attribute name="cashLong" type="xs:decimal" use="required"/>
                   <xs:attribute name="cashShort" type="xs:decimal" use="required"/>
                   <xs:attribute name="dividendAccruals" type="xs:decimal" use="required"/>
                   <xs:attribute name="dividendAccrualsLong" type="xs:decimal" use="required"/>
                   <xs:attribute name="dividendAccrualsShort" type="xs:byte" use="required"/>
                   <xs:attribute name="interestAccruals" type="xs:decimal" use="required"/>
                   <xs:attribute name="interestAccrualsLong" type="xs:byte" use="required"/>
                   <xs:attribute name="interestAccrualsShort" type="xs:decimal" use="required"/>
                   <xs:attribute name="reportDate" type="xs:date" use="required"/>
                   <xs:attribute name="stock" type="xs:decimal" use="required"/>
                   <xs:attribute name="stockLong" type="xs:decimal" use="required"/>
                   <xs:attribute name="stockShort" type="xs:decimal" use="required"/>
                   <xs:attribute name="total" type="xs:decimal" use="required"/>
                   <xs:attribute name="totalLong" type="xs:decimal" use="required"/>
                   <xs:attribute name="totalShort" type="xs:decimal" use="required"/>
                  </xs:complexType>
                 </xs:element>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
              <xs:element name="StmtFunds">
               <xs:complexType>
                <xs:sequence>
                 <xs:element name="StatementOfFundsLine" maxOccurs="unbounded">
                  <xs:complexType>
                   <xs:attribute name="activityDescription" type="xs:string" use="required"/>
                   <xs:attribute name="amount" type="xs:decimal" use="required"/>
                   <xs:attribute name="date" type="xs:date" use="required"/>
                  </xs:complexType>
                 </xs:element>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
              <xs:element name="Trades">
               <xs:complexType>
                <xs:sequence>
                 <xs:element name="Trade" maxOccurs="unbounded">
                  <xs:complexType>
                   <xs:attribute name="buySell" type="xs:string" use="required"/>
                   <xs:attribute name="fifoPnlRealized" type="xs:decimal" use="required"/>
                   <xs:attribute name="fxRateToBase" type="xs:decimal" use="required"/>
                   <xs:attribute name="ibCommission" type="xs:decimal" use="required"/>
                   <xs:attribute name="ibCommissionCurrency" type="xs:string" use="required"/>
                   <xs:attribute name="ibOrderID" type="xs:long" use="required"/>
                   <xs:attribute name="netCash" type="xs:decimal" use="required"/>
                   <xs:attribute name="quantity" type="xs:decimal" use="required"/>
                   <xs:attribute name="symbol" type="xs:string" use="required"/>
                   <xs:attribute name="tradeDate" type="xs:int" use="required"/>
                   <xs:attribute name="tradePrice" type="xs:decimal" use="required"/>
                   <xs:attribute name="tradeTime" type="xs:int" use="required"/>
                  </xs:complexType>
                 </xs:element>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
              <xs:element name="CashTransactions">
               <xs:complexType>
                <xs:sequence>
                 <xs:element name="CashTransaction" maxOccurs="unbounded">
                  <xs:complexType>
                   <xs:attribute name="amount" type="xs:decimal" use="required"/>
                   <xs:attribute name="dateTime" type="xs:date" use="required"/>
                   <xs:attribute name="type" type="xs:string" use="required"/>
                  </xs:complexType>
                 </xs:element>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
              <xs:element name="Transfers">
               <xs:complexType>
                <xs:sequence>
                 <xs:element name="Transfer" maxOccurs="unbounded">
                  <xs:complexType>
                   <xs:attribute name="cashTransfer" type="xs:decimal" use="required"/>
                   <xs:attribute name="date" type="xs:date" use="required"/>
                   <xs:attribute name="direction" type="xs:string" use="required"/>
                   <xs:attribute name="type" type="xs:string" use="required"/>
                  </xs:complexType>
                 </xs:element>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
             </xs:sequence>
             <xs:attribute name="accountId" type="xs:string" use="required"/>
             <xs:attribute name="fromDate" type="xs:int" use="required"/>
             <xs:attribute name="period" type="xs:string" use="required"/>
             <xs:attribute name="toDate" type="xs:int" use="required"/>
             <xs:attribute name="whenGenerated" type="xs:string" use="required"/>
            </xs:complexType>
           </xs:element>
          </xs:sequence>
          <xs:attribute name="count" type="xs:byte" use="required"/>
         </xs:complexType>
        </xs:element>
       </xs:sequence>
       <xs:attribute name="queryName" type="xs:string" use="required"/>
       <xs:attribute name="type" type="xs:string" use="required"/>
      </xs:complexType>
     </xs:element>
    </xs:schema>
    Die XML Datei muss per Token von einem Server abgerufen werden.
    Danach soll die XML Datei per Script in meine mySQL Datenbank importiert werden. Die Datenbankstruktur habe ich bereits entsprechend der XML aufgebaut. Jedoch enthält die XML Datei noch weitere Tabellen, die ich nicht benötige und auch nicht importieren will.

    Benötigen tue ich die folgenden Tabellen:
    - AccountInformation
    - EquitySummaryByReportDateInBase
    - StatementOfFundsLine
    - Trade
    - CashTransaction
    - Transfer

    Leider bin ich mit den ganzen Programmiersachen nicht so firm und es wäre schön wenn mir jemand ein paar Tipps geben kann. Vielleicht gibt es auch schon fertige Scripte, die ich nur leicht anpassen muss?

    Vielen Dank
    Thomas
Lädt...
X