Python 3.x 使用Python从XML字符串提取数据
我有一个XML字符串,只需要提取每组“行”中的第一个“col”标记。 换句话说,输出应如下所示:Python 3.x 使用Python从XML字符串提取数据,python-3.x,xml,Python 3.x,Xml,我有一个XML字符串,只需要提取每组“行”中的第一个“col”标记。 换句话说,输出应如下所示: Fluk-TEST Beltran-TEST ACME-TEST 这是XML: data = '''<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu
Fluk-TEST
Beltran-TEST
ACME-TEST
这是XML:
data = '''<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<processOXIMessageResponse xmlns="urn:com:singun:webservice" xmlns:ns="urn:com:singun:webservice">
<ns1:processOXIMessageReturn xmlns:ns1="urn:com:singun:webservice">
<SingunDocument xmlns="C" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" protocol="OXI">
<sessionId xmlns="">1613762599483</sessionId>
<command xmlns="" echo="" xsi:type="ServiceProviderGetListResponse">
<serviceProviderTable>
<colHeading>Service Provider Id</colHeading>
<colHeading>Service Provider Name</colHeading>
<colHeading>Is Enterprise</colHeading>
<colHeading>Reseller Id</colHeading>
<row>
<col>Fluk-TEST</col>
<col>ATP 1</col>
<col>true</col>
<col />
</row>
<row>
<col>Beltran-TEST</col>
<col>ATP 2</col>
<col>true</col>
<col />
</row>
<row>
<col>ACME-TEST</col>
<col>ATP 3</col>
<col>true</col>
<col />
</row>
</serviceProviderTable>
</command>
</SingunDocument>
</ns1:processOXIMessageReturn>
</processOXIMessageResponse>
</soapenv:Body>
</soapenv:Envelope>
这是我的代码的输出:
Fluk-TEST
ATP 1
true
None
Beltran-TEST
ATP 2
true
None
ACME-TEST
ATP 3
true
None
请帮我一下。非常感谢您可以使用切片操作符。它最多占用列表类对象中的一个元素:
for row in root.iter('row'):
for col in row[:1]:
print(col.text)
还有这个高级SOAP库,但在这种情况下可能有点过头了只需迭代感兴趣的节点:
对于root.iterfind('.//row/col[1]”)中的col:
非常感谢@kobuz,您的答案非常有用非常感谢@Tomalak,您的答案非常有用
for row in root.iter('row'):
for col in row[:1]:
print(col.text)