![](/img/trans.png)
[英]How get the text from the <p> tag using XPath Selenium and Python
[英]How to get text of XML tag using XPATH
我這里有一個簡單的 xml 標簽,我只想獲取帶有"en"
的屬性文本,我想根據屬性值獲取它,所以我通過 XPATH 來實現
<tu>
<tuv xml:lang="de"><seg>Samp</seg></tuv>
<tuv xml:lang="en"><seg>Python is cool!</seg></tuv>
</tu>
正如你所看到的, <tuv>
標簽的屬性是xml:lang
然后我在這里嘗試了這段代碼
print(body_xml.find("tu").find('./tuv[@xml:lang="en"]').find("seg").text)
但是它給了我這個錯誤
raise SyntaxError("prefix %r not found in prefix map" % prefix) from None
SyntaxError: prefix 'xml' not found in prefix map
事情也是我試圖刪除xml:
所以留下了"lang"
然后我試着把它這樣print(body_xml.find("tu").find('./tuv[@lang="en"]').find("seg").text)
並且成功了! 現在我只是想知道我認為問題是因為這個角色:
所以有沒有辦法正式正確地做這件事? 我非常願意在這個偉大的社區中提出任何建議:) 感謝您幫助我的程序員!
調用find
時需要使用命名空間
import xml.etree.ElementTree as ET
xml = '''<tu>
<tuv xml:lang="de"><seg>Samp</seg></tuv>
<tuv xml:lang="en"><seg>Python is cool!</seg></tuv>
</tu>'''
nsmap = {"xml": "http://www.w3.org/XML/1998/namespace"}
root = ET.fromstring(xml)
seg_txt = root.find('.//tuv[@xml:lang="en"]', nsmap).find('seg', nsmap).text
print(seg_txt)
輸出
Python is cool!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.