You can do like this:
NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
[iq addAttributeWithName:@"type" stringValue:@"set"];
[iq addAttributeWithName:@"id" stringValue:@"pip1"];
[iq addChild:[NSXMLElement elementWithName:@"pubsub" xmlns:@"http://jabber.org/protocol/pubsub"]];
NSXMLElement *publish = [NSXMLElement elementWithName:@"publish"];
[publish addAttributeWithName:@"node" stringValue:@"storage:bookmarks"];
NSXMLElement *item = [NSXMLElement elementWithName:@"item"];
[item addAttributeWithName:@"id" stringValue:@"current"];
[publish addChild:item];
[publish addChild:[NSXMLElement elementWithName:@"storage" xmlns:@"storage:bookmarks"]];
NSXMLElement *conference = [NSXMLElement elementWithName:@"conference"];
[iq addChild:publish];
--
--
--;
Its not completed, but I hope you got an idea how to do it.