Python 从xml中提取元素
我需要从下面的xml中获取的值 我有一个Django Rest框架,它提供以下XML-Python 从xml中提取元素,python,xml,django,lxml,Python,Xml,Django,Lxml,我需要从下面的xml中获取的值 我有一个Django Rest框架,它提供以下XML- <root> <list-item> <jobmst_id>3493</jobmst_id> <jobmst_type>1</jobmst_type> <jobmst_prntid/> <jobmst_active>N</jobmst_active> <
<root>
<list-item>
<jobmst_id>3493</jobmst_id>
<jobmst_type>1</jobmst_type>
<jobmst_prntid/>
<jobmst_active>N</jobmst_active>
<evntmst_id>
<evntmst_id>1</evntmst_id>
<evntmst_name>Daily </evntmst_name>
<evntmst_desc/>
<evntmst_owner>2</evntmst_owner>
<evntmst_lstchgtm>2009-12-04 12:28:52</evntmst_lstchgtm>
<evntmst_lstcmptm>2014-08-28 12:00:29</evntmst_lstcmptm>
<evntmst_fromdt/>
<evntmst_untildt>2012-12-31 00:00:00</evntmst_untildt>
<evntmst_frcstdt>2012-12-31 00:00:00</evntmst_frcstdt>
<evntmst_type>2</evntmst_type>
<evntmst_subtype/>
<evntmst_freq>1</evntmst_freq>
<evntmst_crttm>2009-12-04 11:22:03</evntmst_crttm>
<evntmst_totcnt/>
<evntmst_public>Y</evntmst_public>
<evntmst_months>YYYYYYYYYYYY</evntmst_months>
<evntmst_weeks>NNNNN</evntmst_weeks>
<evntmst_monthdays>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</evntmst_monthdays>
<evntmst_weekdays>YYYYYYY</evntmst_weekdays>
<evntmst_offset>0</evntmst_offset>
<evntmst_intsect>N</evntmst_intsect>
<evntmst_occur>0</evntmst_occur>
<evntmst_timeframe>0</evntmst_timeframe>
<evntmst_calendar>0</evntmst_calendar>
<evntmst_fiscal>0</evntmst_fiscal>
</evntmst_id>
<jobmst_evntoffset/>
<jobmst_name>SWIFT</jobmst_name>
<jobmst_mode>0</jobmst_mode>
<jobmst_owner>
<owner_id>128</owner_id>
<owner_type>2</owner_type>
<owner_name>SWIFT </owner_name>
<owner_allagents>Y</owner_allagents>
</jobmst_owner>
<jobmst_desc/>
<jobmst_crttm>2009-04-24 14:17:56</jobmst_crttm>
<jobdtl_id>
<jobdtl_id>3493</jobdtl_id>
<jobdtl_cmd/>
<jobdtl_envfile/>
<jobdtl_retnsn>180</jobdtl_retnsn>
<jobdtl_allowadhoc>Y</jobdtl_allowadhoc>
<jobdtl_waitop>N</jobdtl_waitop>
<jobdtl_fromdt>1899-12-30 00:00:00</jobdtl_fromdt>
<jobdtl_untildt>1899-12-30 00:00:00</jobdtl_untildt>
<jobdtl_fromtm/>
<jobdtl_untiltm/>
<jobdtl_proxy>
<usrmst_id>4</usrmst_id>
<usrmst_domain>CPPIB </usrmst_domain>
<usrmst_name>svc_tidal</usrmst_name>
<usrmst_fullname>Tidal User</usrmst_fullname>
<usrmst_desc/>
<usrmst_phoneno/>
<usrmst_pagerno/>
<usrmst_email/>
<usrmst_emailtype>0</usrmst_emailtype>
<secmst_id>1</secmst_id>
<lngmst_id>1</lngmst_id>
<usrmst_password>@JrL(OOLO8RSAWKX</usrmst_password>
<usrmst_externid/>
<usrmst_suser>Y</usrmst_suser>
<usrmst_lstchgtm>2013-05-30 12:18:13</usrmst_lstchgtm>
<usrmst_sappassword/>
<usrmst_pspassword/>
<usrmst_aspassword/>
<usrmst_orapassword/>
<usrmst_wingroup>N</usrmst_wingroup>
</jobdtl_proxy>
<jobdtl_proxy2/>
<jobdtl_interval/>
<jobdtl_intervalcnt/>
<jobdtl_unit/>
<jobdtl_duration>55826</jobdtl_duration>
<jobdtl_concur>1</jobdtl_concur>
<jobdtl_priority>50</jobdtl_priority>
<jobdtl_minrun>60</jobdtl_minrun>
<jobdtl_maxrun>60</jobdtl_maxrun>
<jobdtl_failalarm/>
<nodmst_id/>
<nodlstmst_id>
<nodlstmst_id>27</nodlstmst_id>
<nodlstmst_name>OPS_SharedWIN </nodlstmst_name>
<nodlstmst_desc/>
<nodlstmst_type>1</nodlstmst_type>
<nodlstmst_prntid/>
<nodlstmst_seq/>
<nodlstmst_ostype>1</nodlstmst_ostype>
<nodlstmst_lastused/>
<nodlstmst_lstchgtm>2014-07-23 15:31:37</nodlstmst_lstchgtm>
<servicemst_id/>
</nodlstmst_id>
<jobdtl_inhevent>N</jobdtl_inhevent>
<jobdtl_inhoptions>N</jobdtl_inhoptions>
<jobdtl_inhagent>N</jobdtl_inhagent>
<jobdtl_inhrepeat>N</jobdtl_inhrepeat>
<jobdtl_inhtime>N</jobdtl_inhtime>
<jobdtl_timewin>0</jobdtl_timewin>
<jobdtl_saveoutput>Y</jobdtl_saveoutput>
<jobdtl_outputname/>
<jobdtl_trackmethod>1</jobdtl_trackmethod>
<jobdtl_trackcmd/>
<jobdtl_deplogic>1</jobdtl_deplogic>
<jobdtl_rerun/>
<jobdtl_params/>
<jobdtl_sapcount/>
<jobdtl_normalexit>0</jobdtl_normalexit>
<jobdtl_normalrange>0</jobdtl_normalrange>
<jobdtl_normalop>1</jobdtl_normalop>
<jobdtl_deprerun>N</jobdtl_deprerun>
<jobdtl_carryover>1</jobdtl_carryover>
<jobdtl_psjob/>
<jobdtl_savelogonly>N</jobdtl_savelogonly>
<jobdtl_trxid>0</jobdtl_trxid>
<jobdtl_rerunok>Y</jobdtl_rerunok>
<jobdtl_workdir/>
<jobdtl_extinfo/>
<servicemst_id/>
<jobdtl_estmethod>1</jobdtl_estmethod>
<jobdtl_nearoutage>3</jobdtl_nearoutage>
<jobdtl_trackcl/>
<jobdtl_statuscl/>
<jobdtl_abrtonclderr/>
<jobdtl_estdurexclude>4</jobdtl_estdurexclude>
</jobdtl_id>
<jobmst_lstchgtm>2009-04-24 14:19:02</jobmst_lstchgtm>
<jobmst_runbook/>
<jobcls_id/>
<jobmst_prntname/>
<jobmst_alias>3493A </jobmst_alias>
<jobmst_dirty> </jobmst_dirty>
<job_dependencies/>
<job_events/>
</list-item>
</root>
您可以使用XPath语法,如文档所示: 这使得:
3493
您正试图提取哪些元素的值?@shaktimaan-现在已更正以显示我需要的内容。在电话上,因此无法测试,但您可能只需要
doc.xpath('//jobmst_id/text()')
@roippi-就是这样!现在,如果我能找到所有这些的函数文档,lxml文档库对我来说还不够简单。xpath本身就是一种蠕虫,我怀疑lxml的文档对解释它有多大帮助。谷歌搜索xpath教程可能会更有成效。
root = ET.fromstring(data)
jobmst_id_tag = root.find('./list-item/jobmst_id')
jobmst_id_value = jobmst_id_tag.text
print jobmst_id_value
3493