如何查找XML中是否存在空属性



有这样一个XML(位于/home/user/中(:

<?xml version="1.0" ?>
<DataClient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cnmc="http://www.example.com/Tipos_DataClient" xmlns="http://www.example.com/DataClient">
<PersonalData Operation="3" Date="2022-09-06">
<ExtendedData>
<Person Code="XXX" OtherCode="Y12354"/>
</ExtendedData>
<Home Type="Street" Num="10" Code="12003" Poblation="Imaginary street"/>
</PersonalData>
</DataClient>

如果";Num"属性为空?然后生成所有那些具有"0"的元素的列表;Num"空的

我试着用";无";作为值,但它总是返回0:

#! /usr/bin/python3
import xml.etree.ElementTree as ET
tree = ET.parse('/home/user/file.xml')
root = tree.getroot()
b = None
a = sum(1 for s in root.findall('./DataClient/PersonalData/ExtendedData/Num') if s.b)
print (a)

由于Python的etreeAPI将属性映射到字典,请考虑dict.get来检查特定的属性。此外,由于XML包含默认名称空间,因此需要使用findallnamespaces参数。

import xml.etree.ElementTree as ET 
tree = ET.parse('/home/user/file.xml')
nmsp = {"doc": "http://www.example.com/DataClient"}
xpath = "./doc:DataClient/doc:PersonalData/doc:Home"
a = sum(1 for node in tree.findall(xpath, nmsp) if node.attrib.get("Num") is None) 

相关内容

  • 没有找到相关文章