最近开发中遇到一个需求,在post请求中,需要传递xml的参数!瞬间感觉不太好了,常规来说都是上传json的, 无奈也只能按照接口文档来做了!
查阅大量资料,KissXML 这个开源框架可以完美解决该问题, 下面粘出实现代码:
- (void)getSkuXmlWithVArray:(NSMutableArray *)vArray pArray:(NSMutableArray *)pArray
{
DDXMLElement *AttributesElement = [DDXMLElement elementWithName:@"Attributes"];
for (NSInteger i = 0; i < pArray.count; i++) {
DDXMLElement *ProductAttributeElement = [DDXMLElement elementWithName:@"ProductAttribute"];
[ProductAttributeElement addAttribute:[DDXMLNode attributeWithName:@"ID" stringValue:pArray[i]]];
DDXMLElement *ProductAttributeValueElement = [DDXMLElement elementWithName:@"ProductAttributeValue"];
DDXMLElement *ValueElement = [DDXMLElement elementWithName:@"Value" stringValue:vArray[i]];
[AttributesElement addChild:ProductAttributeElement];
[ProductAttributeElement addChild:ProductAttributeValueElement];
[ProductAttributeValueElement addChild:ValueElement];
}
NSLog(@"%@", [AttributesElement XMLString]);
_attributesXml = [AttributesElement XMLString];
}
结果如下:
<Attributes>
<ProductAttribute ID="16">
<ProductAttributeValue>
<Value>42</Value>
</ProductAttributeValue>
</ProductAttribute>
<ProductAttribute ID="17">
<ProductAttributeValue>
<Value>46</Value>
</ProductAttributeValue>
</ProductAttribute>
</Attributes>
只需将其转化为字符串, 作为参数即可进行post请求!