第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如果使用 minidom 在 python 中找不到標(biāo)簽,則繼續(xù) xml 解析

如果使用 minidom 在 python 中找不到標(biāo)簽,則繼續(xù) xml 解析

開(kāi)滿天機(jī) 2021-08-24 19:09:41
示例 XML 文檔<Authors>    <Author>        <LastName>def</LastName>        <age>20</age>    </Author>    <Author>        <ForeName>ghi</ForeName>        <age>22</age>    </Author>    <Author>        <ForeName>mno</ForeName>        <LastName>pqr</LastName>        <age>23</age>    </Author></Authors>樣本輸出Author:FirstName :  -LastName :  defAuthor:FirstName :  ghiLastName : - Author:FirstName :  mnoLastName :  pqr示例代碼import xml.dom.minidom# use the parse() function to load and parse an XML filedoc = xml.dom.minidom.parse("sampleinput.xml");auth = doc.getElementsByTagName('Author')for a in auth:    print("Author:")    try:        print("FirstName : ",a.getElementsByTagName("ForeName")[0].firstChild.data)    except:        print("FirstName : - ")    try:        print("LastName : ",a.getElementsByTagName("LastName")[0].firstChild.data)    except:        print("LastName : - ")如果找不到相應(yīng)的標(biāo)簽,我想插入一個(gè)“-”符號(hào)。有沒(méi)有其他可靠的方法可以做到這一點(diǎn)而不是嘗試和排除?
查看完整描述

1 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

有!因此,讓我們看看a.getElementsByTagName如果它不包含您的目標(biāo)元素,當(dāng)您實(shí)際運(yùn)行時(shí)會(huì)發(fā)生什么。


for a in auth:

    print(a.getElementsByTagName("ForeName"))


>>

[]

[<DOM Element: ForeName at 0x163a17226d0>]

[<DOM Element: ForeName at 0x163a1722898>]

是的,現(xiàn)在我們知道如果你嘗試獲取一個(gè)它沒(méi)有的元素,它會(huì)返回一個(gè)空列表并且也與文檔對(duì)齊:


NodeList 表示節(jié)點(diǎn)序列。這些對(duì)象在 DOM Core 推薦中以兩種方式使用:一個(gè) Element 對(duì)象提供一個(gè)作為其子節(jié)點(diǎn)列表,Node 的 getElementsByTagName() 和 getElementsByTagNameNS() 方法返回具有此接口的對(duì)象以表示查詢結(jié)果。


現(xiàn)在,您可以在打印數(shù)據(jù)之前明確檢查元素是否存在,而不是執(zhí)行try和except循環(huán):


for a in auth:

    if a.getElementsByTagName("ForeName"):

        print("FirstName : ",a.getElementsByTagName("ForeName")[0].firstChild.data)

    else:

        print("FirstName : - ")


>>

FirstName : - 

FirstName :  ghi

FirstName :  mno

這里if塊檢查它是否不為空,然后打印。如果NodeList為空,則打印破折號(hào)。


查看完整回答
反對(duì) 回復(fù) 2021-08-24
  • 1 回答
  • 0 關(guān)注
  • 290 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)