2012-06-27 42 views
0
<XMLReport><Report> 
<Preflight errors="0" criticalfailures="0" noncriticalfailures="0" signoffs="0" fixes="0" warnings="10"> 
    <PreflightResult type="Check" level="warning"> 
    <PreflightResultEntry xml:lang="en-US"> 
     <Message>PDF/X-1a:20000 : PDF/X-1a:20000 output intent is missing </Message> 
     <StringContext> 
     <BaseString>PDF/X-1a:20000 : %PDFXVersion% output intent is missing</BaseString> 
     </StringContext> 
    </PreflightResultEntry> 
    </PreflightResult> 
</Preflight></Report> 

我想在Python中使用lxml獲取<Message> </Message>元素中的所有值/文本。如何使用Python中的lxml在xml中提取值

由於從lxml tuto

+2

(http://whathaveyoutried.com) – Amber

+0

問題的標題應該有你的問題,而不是你有什麼。 – pyfunc

回答

2

簡單:?你嘗試過什麼]

>>> from lxml import etree 
>>> s = """<Report> 
<Preflight errors="0" criticalfailures="0" noncriticalfailures="0" signoffs="0" fixes="0" warnings="10"> 
    <PreflightResult type="Check" level="warning"> 
    <PreflightResultEntry xml:lang="en-US"> 
     <Message>PDF/X-1a:20000 : PDF/X-1a:20000 output intent is missing </Message> 
     <StringContext> 
     <BaseString>PDF/X-1a:20000 : %PDFXVersion% output intent is missing</BaseString> 
     </StringContext> 
    </PreflightResultEntry> 
    </PreflightResult> 
</Preflight></Report> 
""" 
>>> root = etree.XML(s) 
>>> for message in root.findall('Preflight/PreflightResult/PreflightResultEntry/Message'): 
    print message.text 


PDF/X-1a:20000 : PDF/X-1a:20000 output intent is missing 
>>>