簡體   English   中英

使用python lxml解析部分XML

[英]Parsing a partial XML with python lxml

我正在嘗試解析一個用Python從網絡接收的大型XML文件。

為此,我獲取數據並將其傳遞給lxml.etree.iterparse

但是,如果尚未完全發送XML,請執行以下操作:

<MyXML>
    <MyNode foo="bar">
    <MyNode foo="ba

如果我運行etree.iterparse(f, tag='MyNode').next()我得到一個XMLSyntaxError ,它被切斷了。

我有什么方法可以做到這一點,所以我可以收到第一個標簽(即第一個MyNode),只有當我到達文檔的那一部分時才會出現異常? (使lxml真正'流'內容,而不是在開頭閱讀整個內容)。

XMLPullParserHTMLPullParser可以更好地滿足您的需求。 他們通過重復調用parser.feed(data)parser.feed(data) 在樹可用之前,您仍需要等到所有數據都進入。

嘗試從問題的兩個相關問題的答案中學習。 在更多相關答案中找到更多智慧。 您的問題很常見,可能需要稍微調整一下以適應經過驗證的解決方案。 更喜歡這種方式來創建穩定的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM