如何在python中检查xml标记值是否为none
我试图比较两个api的响应数据。其中一个返回xml。问题是xml响应中的一个标记为null。我找不到检查该值是否存在的方法 下面是xml响应如何在python中检查xml标记值是否为none,python,xml,xml.etree,Python,Xml,Xml.etree,我试图比较两个api的响应数据。其中一个返回xml。问题是xml响应中的一个标记为null。我找不到检查该值是否存在的方法 下面是xml响应 <?xml version="1.0" encoding="UTF-8"?> <FCDB_RES_ENV> <FCDB_HEADER> <SOURCE>FCAT</SOURCE> <FCDBCOMP>FCDB</FCDBCOMP>
<?xml version="1.0" encoding="UTF-8"?>
<FCDB_RES_ENV>
<FCDB_HEADER>
<SOURCE>FCAT</SOURCE>
<FCDBCOMP>FCDB</FCDBCOMP>
<MSGID>MB_31051021591539014</MSGID>
<CORRELID>MB_31051021591539014</CORRELID>
<USERID>615</USERID>
<BRANCH>000</BRANCH>
<MODULEID>LGN</MODULEID>
<SERVICE>GetEmailMobNoDetails</SERVICE>
<OPERATION>GetEmailMobNoDetails</OPERATION>
<SOURCE_USERID>FCAT</SOURCE_USERID>
<DESTINATION>FCDB</DESTINATION>
<COUNTRYCODE>T001</COUNTRYCODE>
<USERTYPE>ENS</USERTYPE>
<LANGID>eng</LANGID>
<CHANNELID>01</CHANNELID>
</FCDB_HEADER>
<FCDB_BODY>
<EMAILID/>
<MOBNO>03006846625</MOBNO>
<FCDB_ERROR_RESP>
<ERROR>
<ECODE>00</ECODE>
<EDESC>Your transaction has been processed successfully.</EDESC>
</ERROR>
</FCDB_ERROR_RESP>
<FCDB_WARNING_RESP>
<WARNING>
<WCODE/>
<WDESC/>
</WARNING>
</FCDB_WARNING_RESP>
</FCDB_BODY>
</FCDB_RES_ENV>
您正在使用lxml包吗?因为
from lxml.etree import ElementTree, fromstring
data = """...""" # your XML string here
tree = ElementTree(fromstring(data))
我发现你有语法错误
此外,是否要检索from xml.etree import ElementTree
data = """...""" # Your XML string
tree = ElementTree.ElementTree(ElementTree.fromstring(data))
root = tree.getroot()
for l in root.findall("./FCDB_BODY/EMAILID"):
if l is not None:
xml_email = l.text
if xml_email:
print("XML Email is", xml_email)
else:
print("There is no email for this entry")
else:
pass
您的“XML响应”不是XML(或者您只是部分粘贴了它)。无论如何,XML都是无效的。@Tomalak我粘贴了部分内容。让我编辑并编写有效的xmlAh,这样更好。但是,在XML中,
元素是空的,当然,.text
是None
。当您尝试改为/FCDB\u BODY/MOBNO
时会得到什么?我得到的值在本例中是“03006846625”。我想在获取值之前检查它是否为空。我该怎么做?我找不到在这里插入if-else的方法emailid=root.find(“./FCDB\u BODY/emailid”)
(不是.findall()
-您只需要点击一次),然后:如果emailid为None或emailid.text为None或emailid.text==”:。。。否则:…
很抱歉,我使用的是xml.etree。此外,我确实希望检索from xml.etree import ElementTree
data = """...""" # Your XML string
tree = ElementTree.ElementTree(ElementTree.fromstring(data))
root = tree.getroot()
for l in root.findall("./FCDB_BODY/EMAILID"):
if l is not None:
xml_email = l.text
if xml_email:
print("XML Email is", xml_email)
else:
print("There is no email for this entry")
else:
pass