我得到XML作为响应,所以我想解析它。我尝试了许多python库,但没有得到我想要的结果。所以如果你能帮忙的话,我会非常感激的。你知道吗
以下代码返回None
:
xmlResponse = ET.fromstring(context.response_document)
a = xmlResponse.findall('.//Body')
print(a)
XML数据示例:
<S:Envelope
xmlns:S="http://www.w3.org/2003/05/soap-envelope">
<S:Header>
<wsa:Action s:mustUnderstand="1"
xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse
</wsa:Action>
</S:Header>
<S:Body>
<query:AdhocQueryResponse status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"
xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<rim:RegistryObjectList
xmlns:rim="u`enter code here`rn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"/>
</query:AdhocQueryResponse>
</S:Body>
</S:Envelope>
我想从它身上得到状态。如果你能建议一些图书馆的变化,那么请帮助我。谢谢
给定以下基本代码:
让我们在此基础上进行构建,以获得所需的输出。你知道吗
对
.//Body
x-path的初始查找返回NONE,因为它不存在于XML响应中。你知道吗XML中的每个标记都有一个与其相关联的命名空间。有关xml名称空间的更多信息可以在here中找到。你知道吗
考虑以下带有
xmlns
值(xml命名空间)的行:命名空间
S
的值设置为http://www.w3.org/2003/05/soap-envelope
。你知道吗将
{S}Envelope
中的S
替换为上面设置的值将为您提供在XML中查找的结果标记:对于
<S:Body>
,我们也需要这样做。你知道吗要获取
<S:Body>
元素及其子节点,可以执行以下操作:输出:
或者
您还可以使用以下方法直接查找XML中的所有
{query}AdhocQueryResponse
:输出:
相关问题 更多 >
编程相关推荐