Python Xml - Search For Attribute With Regular Expressions
In my xml file, I have nodes like this: I know how to use .findall to search for attributes but now, it looks like I would need t
Solution 1:
Unfortunately, things like contains()
and starts-with()
are not supported by xml.etree.ElementTree
built-in library. You can manually check the attribute, finding all waitingJobs
and using .attrib
to get to the idList
value:
import xml.etree.ElementTree as ET
data = """<jobs>
<waitingJobs idList="J03ac2db8 J03ac2fb0"/>
</jobs>
"""
root = ET.fromstring(data)
value = 'J03ac2db8'print([elm for elm in root.findall(".//waitingJobs[@idList]")
if value in elm.attrib["idList"]])
With lxml.etree
, you can use xpath()
method and contains()
function:
import lxml.etree as ET
data = """<jobs>
<waitingJobs idList="J03ac2db8 J03ac2fb0"/>
</jobs>
"""
root = ET.fromstring(data)
value = 'J03ac2db8'print(root.xpath(".//waitingJobs[contains(@idList, '%s')]" % value))
Post a Comment for "Python Xml - Search For Attribute With Regular Expressions"