from lxml import etree
def parseXml(context,elemList):
for event, element in context:
if element.tag in elemList:
#read text and attributes is any
element.clear()
def main(object):
elemList= ['name','age','id']
context=etree.iterparse(fullFilePath, events=("start","end"))
parseXml(context,elemList)
etree.iterparseソース引数のバッファを期待。あなたが渡す変数の名前、 "fullFilePath"は、ファイルではないことを伝えます(パーサーはファイル内容のファイルパスを解析しようとしています)。 代わりに開いたファイルを渡してみてください。
context=etree.iterparse(open(fullFilePath), events=("start","end"))
または文字列:
from lxml import etree
xml = '<root><person><name>"xyz"</name><age>"10"</age></person><person><name>"abc"</name><age>"20"</age></person></root>\n'
def parseXml(context,elemList):
for event, element in context:
if element.tag in elemList:
print element.tag,
element.clear()
def main():
elemList= ['name','age','id']
context=etree.iterparse(StringIO(xml), events=("start","end"))
parseXml(context,elemList)
main()
>>>name name age age name name age age
PS:そして、あなたはこれで何をすべきかを意味ですか?
DEFメイン(オブジェクト):
コードですか? –
コードサンプルを追加しました。 – Rinks