亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

lxml xpath 如何處理xml實體

lxml xpath 如何處理xml實體

精慕HU 2021-08-17 15:35:02
我使用 lxml (Python 3.7.1) 來解析包含 xml 實體的 xml 文檔。我不能設法得到正確的語法來查詢一個包含元素的XML實體(&quot,&apos;,等)。請參閱以下代碼:from lxml import etreeroot = etree.XML('''<root>    <item name="abcd">        <ssitem att="efg"/>    </item>    <item name="hi&apos;jk">        <ssitem att="lmn"/>    </item></root>''')item = root.xpath(".//item[@name='abcd']") # 1# item = root.xpath(".//item[@name='hi&apos;jk']") # 2# item = root.xpath(".//item[@name='hi'jk']") # 3# item = root.xpath('.//item[@name="hi''jk"]') # 4if len(item) != 0:    print(len(item))    print(item)    name = item[0].xpath(".//@name")    print(name)else:    print("Nothing")  當第 1 行取消注釋時,代碼工作正常。當第 2 行(或第 3 行或第 4 行)被取消注釋(并且其他行被注釋)時,什么也找不到。為什么會這樣?
查看完整描述

2 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

這&apos;是XML 文件中編碼的一部分。


在 XPath 查詢中,您應該使用:


>>> root.xpath(""".//item[@name="hi'jk"]""")

[<Element item at 0x7f91b2b9ae88>]


查看完整回答
反對 回復 2021-08-17
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

考慮使用最后一個 #4 選項轉義單個撇號:


item = root.xpath('.//item[@name="hi\'jk"]') # 4

item


# [<Element item at 0xbe25608>]


查看完整回答
反對 回復 2021-08-17
  • 2 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號