2017-10-30 9 views
0

PostgreSQL에서 xml 유형의 행을 반환하는 sql-query가 있습니다. 그리고 그 행을 파이썬의 lxml 요소에 추가하고 싶습니다.lxml parse py-postgresql xml 출력

from lxml import etree as ET 
#doing db connection here, declare a query text etc. 

root = ET.Element('root') 
res = db.query(querytext) 
for row in res: 
    root.append(row[0]) #<- and here i'm getting error 

오류가

그래서 어떻게 xml.etree.ElementTree.element이 lxml.etree._element로 변환 할 수 있습니다 "lxml.etree._element이 xml.etree.ElementTree.element있어 기대"입니까? 아니면 다른 방식으로해야합니까? 아마도 다른 XML lib?

from lxml import etree as ET 
#doing db connection here, declare a query text etc. 

root = ET.Element('root') 
#res = db.query(querytext) 

res = [ 
    ('<foo>1</foo>',), 
    ('<foo>2</foo>',) 
] 

for row in res: 
    root.append(ET.fromstring(row[0])) 

print(ET.tostring(root, pretty_print=True)) 

반환 :

답변

0

당신은 문자열에서 XML을 생성 할 필요가

b'<root>\n <foo>1</foo>\n <foo>2</foo>\n</root>\n' 
+0

을하지만 문제는 내가 PostgreSQL의에서 <0x000000D38BF8D0E8에서 요소 '항목'> 얻고 있다는 것입니다. 그것은 문자열이 아니에요. –