2016-08-12 40 views
0

我有,我可以發送SQL通過這樣的網絡服務選擇查詢一個遙遠的數據庫:如何處理網頁的SQL查詢和XML的答覆在Python

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

返回

<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> 

然後我需要將記錄插入本地SQL數據庫。

最簡單的方法是什麼?謝謝 !

回答

1

首先,在URL中查詢它是一個可怕的安全想法。

使用xml庫解析XML,然後遍歷結果添加到數據庫。

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