2016-08-12 13 views
0

のWeb SQLクエリとXML応答を処理するために、私は私はこのようなWebサービスを介してSQL selectクエリを送信することができた上で遠くのデータベースを持っている:どのようにPythonの

<Query> 
    <SQL></SQL> 
    <Fields> 
     <MACHINEID DataType="Integer" DataSize="4"/> 
     <NAME DataType="WideString" DataSize="62"/> 
     <MACHINECLASSID DataType="Integer" DataSize="4"/> 
     <SUBMACHINECLASS DataType="WideString" DataSize="22"/> 
     <DISABLED DataType="Integer" DataSize="4"/> 
    </Fields> 
    <Record> 
     <MACHINEID>1</MACHINEID> 
     <NAME>LOADER</NAME> 
     <MACHINECLASSID>16</MACHINECLASSID> 
     <SUBMACHINECLASS>A</SUBMACHINECLASS> 
     <DISABLED>0</DISABLED> 
    </Record> 
    <Record> 
    ... 
    </Record> 
... 
</Query> 

を返し

http://aa.bb.cc.dd:85/SQLWEB?query=select+*+from+machine&output=xml_v2 

次に、レコードをローカルのSQLデータベースに挿入する必要があります。

最も簡単な方法は何ですか?ありがとう!

答えて

1

まず最初に、URLのquerysはセキュリティに関して恐ろしい考えです。

xml libsを使用してxmlを解析し、結果を反復処理してdbに追加します。

import xml.etree.ElementTree as ET 
tree = ET.parse('xml file') 
root = tree.getroot()  
# root = ET.fromstring(country_data_as_string) if you use a string 
for record in root.findall('Record'): 
    MACHINEID = record.get('MACHINEID') 
    NAME = record.get('NAME') 
    MACHINECLASSID = record.get('MACHINECLASSID') 
    SUBMACHINECLASS = record.get('SUBMACHINECLASS') 
    DISABLED = record.get('DISABLED') 
    #your code to add this result to the db 

ElementTree XML API