XML中的NSMutableURLRequest和SpecialCharacters(HTTPBody)

时间:2009-09-13 13:41:37

标签: iphone xml cocoa-touch

在我的应用程序中,我必须使用RPC Web服务。因为我必须发送一个XML作为NSMutableURLRequest的HTTPBody。

只要我不在XML中使用特殊字符,它就能正常工作。

NSString* pStr = [[NSString alloc] initWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><methodCall><methodName>samurai.SessionInitiate</methodName><params><param><value><struct><member><name>LocalUri</name><value><string></string></value></member><member><name>RemoteUri</name><value><string>sip:%@@sipgate.net</string></value></member><member><name>TOS</name><value><string>text</string></value></member><member><name>Content</name><value><string>%@</string></value></member><member><name>Schedule</name><value><string></string></value></member></struct></value></param></params></methodCall>", modded, smsTextView.text];

在这个XML中,我使用%@两次,在两个位置插入字符串,modded和textView.Text。这就是我的问题,当textView.Text类似于“%=&amp; = - Test”时,Webservice会回答错误,说XML不正常。我认为角色“&amp;”例如,必须是“&amp; amp”之类的东西,但我可以做到这一点? Cocoa Framework中有什么东西可以帮助我吗?我不能成为第一个也是最后一个有这样问题的人吗?还是我做错了什么?!我是否真的必须实现自己的方法来解析String并将XML中不允许的所有字符更改为“&amp; amp”之类的内容?

有人可以给我一个关于如何解决这个问题的提示吗?

谢谢

dragi

1 个答案:

答案 0 :(得分:0)

查看this question的已接受答案。它提供了一个NSString类别,可以满足您的需求(据我所知,没有内置的方法)。