0

というわけで、これが私のゲームプランです.....

Pythonのxpathここに画像の説明を入力

ここに私のxmlがあります

したがって、この xml はデータベース ( ca ) に保存されます。この「データ」を抽出して、これらすべての値レイヤーを取得し、別のデータベース ( a ) に保存する必要があります。

これが私がこれまでに思いついたものです..

import pyodbc
from lxml import etree
from StringIO import StringIO


con_ca = pyodbc.connect(..)
con_a  = pyodbc.connect(..)

cur_ca = con_ca.cursor()
cur_c = con_c.cursor() 

cur_ca.execute("""
select id_original,data
from table
""")

rows_ca = cur_ca.fetchall()
for row in rows_ca:

     id_original = id_original

     x = str(row.data)
     root = etree.fromstring(x)  

     BValid   = etree.XPath('/Data/Response/Detail/B/Valid')  
     BPass    = etree.XPath('/Data/Response/Detail/B/Pass')  
     BDetails = etree.XPath('/Data/Response/Detail/B/Details')  
     BCode    = etree.XPath('/Data/Response/Detail/B/Code')  
     BDecisionS = etree.XPath('/Data/Response/Detail/B/Decision/Result') 
     BDecisionB = etree.XPath('/Data/Response/Detail/B/Decision/Bucket') 



con_a.execute("""
INSERT INTO table2 (id_original,BValid,BPass,BDetails,BCode,BDecisionS BDecisionB) 
VALUES(?, ?, ?,?, ?, ?, ?)
""")

.. fetchall() の後で ('//text') を取得できた以外はすべてうまくいきます : しかし、Xpath を使用して特定のノードに移動し、この例から値またはテキストを取得するにはどうすればよいでしょうか?

4

1 に答える 1

0
(b_valid_text,) = root.xpath('/Data/Response/Detail/B/Valid/text()') 

アンドレアンありがとう!誰かがその答えを必要とする場合に備えて。これで動作します!!

于 2012-09-20T18:32:44.860 に答える