0
아래 XML은 웹 서비스 및 끝점에서 응답으로 제공됩니다.Python : xml을 구문 분석하여 계층 구조를 유지하여 값의 키 및 값을 값으로 가져옵니다.
<ns2:getModuleAnswersResponse xmlns:ns2="http://www.example.com/ManagerService">
<ns2:answer>
<ns2:answer key="storage">
<ns2:value key="failover">true</ns2:value>
<ns2:answer key="timeseries">
<ns2:answer key="socketconnector">
<ns2:value key="host">localhost</ns2:value>
<ns2:value key="port">2020</ns2:value>
</ns2:answer>
</ns2:answer>
</ns2:answer>
<ns2:answer key="frontendws">
<ns2:answer key="tomcat">
<ns2:value key="host">localhost</ns2:value>
<ns2:value key="protocol">http</ns2:value>
<ns2:value key="username">user</ns2:value>
<ns2:value key="password">abc</ns2:value>
</ns2:answer>
<ns2:value key="instance">WS</ns2:value>
</ns2:answer>
<ns2:answer key="topologyservice">
<ns2:value key="host">localhost</ns2:value>
<ns2:answer key="gateway2">
<ns2:value key="host">localhost</ns2:value>
<ns2:value key="port">48443</ns2:value>
<ns2:value key="authentication">certificate</ns2:value>
</ns2:answer>
</ns2:answer>
<ns2:answers key="connection">
<ns2:answer>
<ns2:answer key="primary">
<ns2:answer key="vcenter">
<ns2:value key="host">localhost</ns2:value>
<ns2:value key="username">admin</ns2:value>
<ns2:value key="password">abc</ns2:value>
</ns2:answer>
</ns2:answer>
</ns2:answer>
</ns2:answers>
<ns2:value key="use_advancedsettings">false</ns2:value>
</ns2:answer>
</ns2:getModuleAnswersResponse>
이 XML은이 형식으로 응답을 제공하기 위해 파이썬에서 구문 분석되어야합니다.
{'storage':
{'failover': 'true', 'timeseries':
{'socketconnector':
{'host': 'localhost',
'port': '2020'
}
}
},
'frontendws':
{'tomcat':
{ 'host': 'localhost',
'port': '2020',
'username': 'user',
'password': 'abc'
}, 'instance': 'WS'
},
'topologyservice':
{'host': 'localhost',
'gateway2':
{'host': 'localhost',
'username': 'admin',
'password': 'abc'
}
},
'connection':
{'primary':
{'vcenter':
{'host': 'localhost',
'username': 'admin',
'password': 'abc'
}
}
},
'use_advancedsettings': 'false'
}
이것은 XML을 나타내는 오래된 방법입니다. 나는 파이썬에서 lxml 반복을 사용하여 다른 재귀 접근법을 시도했지만 정확한 결과에 도달하지는 못했다. 파이썬 솔루션을 찾고
네임 스페이스 세부 정보를 추가하지 않아서 죄송합니다. 지금 편집되었습니다. –