I am trying to decode one soap xml packet which is given below
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope>
<SOAP-ENV:Header><cwmp:ID SOAP-ENV:mustUnderstand="230">105</cwmp:ID>
</SOAP-ENV:Header>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<cwmp:Request>
<Id>100</Id>
<RequestEvent SOAP-ENC:arrayType="cwmp:RequestStruct[3]">
<RequestStruct>
<Code>0 ZERO</Code>
<Key></Key>
</RequestStruct>
<RequestStruct>
<Code>1 ONE</Code>
<Key></Key>
</RequestStruct>
<RequestStruct>
<Code>2 TRAP</Code>
<Key></Key>
</RequestStruct>
</RequestEvent>
</cwmp:Request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
When I am trying to decode the packet using code
BOOST_FOREACH(boost::property_tree::ptree::value_type &SL_vTemp, pt.get_child("SOAP-ENV:Envelope.SOAP-ENV:Body.cwmp:Request.RequestEvent"))
{
struct param obj;
obj._Name.assign(SL_vTemp.second.get<std::string>("Code"));
obj._Value.assign(SL_vTemp.second.get<std::string>("Key"))
}
I am getting exception that no node named EventCode. But if I am removing the attribute part "SOAP-ENC:arrayType="cwmp:RequestStruct[3]" from soap xml packet then the code is working fine. Thanks in advance.