簡體   English   中英

xml.etree.ElementTree findall

[英]xml.etree.ElementTree findall

我正在使用xml.etree.ElementTree解析 XML文件 我想根據 name 屬性查找元素。

fnd = root.findall("./player[@name='Pqp239']")

但是,這只會找到名稱的完全匹配項。 您將如何查找名稱包含名稱一部分的元素? 所以它會是這樣的

fnd = root.findall("./player[@name='rob']")

會找到所有名稱包含 rob 的元素,如下所示:

Rob
Robert
chifforobe

您可以使用contains()函數,但這僅在您切換到lxml.etree而不是xml.etree.ElementTree ,后者僅具有部分/有限的 XPath 支持

import lxml.etree as ET

tree = ET.parse("input.xml")
root = tree.getroot()

root.xpath("./player[contains(@name, 'rob')]")

但請注意,要使部分匹配不區分大小寫,您需要另外應用translate()函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM