我得到一个xml响应,如下所示
<entitlement>
<externalId></externalId>
<entitlementAsWhole>false</entitlementAsWhole>
<eId>1c7fd51c-8f12-46e8-a4b7-f1f9c614df82</eId>
<entitlementType>PARENT</entitlementType>
<linkedEntId/>
<product>
<productIdentifier>
<prdExternalId></prdExternalId>
<productId>7</productId>
<productNameVersion>
<productName>test2_porduct</productName>
<productVersion>1.0.0</productVersion>
</productNameVersion>
</productIdentifier>
<feature>
<featureIdentifier>
<ftrExternalId></ftrExternalId>
<featureId>7</featureId>
<featureIdentity>null</featureIdentity>
<ftrNameVersion>
<featureName>test2_feature</featureName>
<featureVersion>1.0.0</featureVersion>
</ftrNameVersion>
</featureIdentifier>
<activationAttributes>
<attributeGroup groupName="LOCKING">
<attribute>
<attributeName>CLIENT_1_CRITERIA</attributeName>
<attributeValue>4</attributeValue>
<readOnly>true</readOnly>
<mandatory>false</mandatory>
</attribute>
<attribute>
<attributeName>CLIENT_1_INFO</attributeName>
<attributeValue></attributeValue>
<readOnly>false</readOnly>
<mandatory>true</mandatory>
</attribute>
</attributeGroup>
</activationAttributes>
<entitlementItemAttributes/>
</Item>
</productKey>
<entitlementAttributes/>
</entitlement>
我想从上面得到只有激活属性的xml,如下所示:-
<activationAttributes>
<attributeGroup groupName="LOCKING">
<attribute>
<attributeName>CLIENT_1_CRITERIA</attributeName>
<attributeValue>4</attributeValue>
<readOnly>true</readOnly>
<mandatory>false</mandatory>
</attribute>
<attribute>
<attributeName>CLIENT_1_INFO</attributeName>
<attributeValue></attributeValue>
<readOnly>false</readOnly>
<mandatory>true</mandatory>
</attribute>
</attributeGroup>
</activationAttributes>
我该怎么做我试过下面的resp.txt包含原始xml然而,这对没有帮助
activation_attribute = et.fromstring(resp.text).findall('activationAttributes')
使用find()
只获取一个元素,然后使用tostring()
获取所选元素的原始XML表示:
from xml.etree import cElementTree as et
.....
root = et.fromstring(resp.text)
activation_attribute = root.find('.//activationAttributes')
print et.tostring(activation_attribute)