之前有些人似乎遇到过NSXMLParser错误111,但它没有在常量中定义。这个答案似乎错误地将111与11:NSXMLParserErrorDomain 111
混淆了据我所知,我的最终xml中没有非法字符:
<?xml version="1.0" encoding="utf-16"?><wsse:BinarySecurityToken wsu:Id="uuid:383b6148-1c27-45ab-963b-30e14af8154e" ValueType="http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">aHR0cCUzYSUyZiUyZnNjaGVtYXMueG1sc29hcC5vcmclMmZ3cyUyZjIwMDUlMmYwNSUyZmlkZW50aXR5JTJmY2xhaW1zJTJmbmFtZWlkZW50aWZpZXI9V3dEM2ozRzBobjE0MWFndkNWJTJmWERadmgwJTJiQ0xHV1hBblRLTmM4Qjc3N1UlM2QmaHR0cCUzYSUyZiUyZnNjaGVtYXMubWljcm9zb2Z0LmNvbSUyZmFjY2Vzc2NvbnRyb2xzZXJ2aWNlJTJmMjAxMCUyZjA3JTJmY2xhaW1zJTJmaWRlbnRpdHlwcm92aWRlcj11cmklM2FXaW5kb3dzTGl2ZUlEJkF1ZGllbmNlPWh0dHBzJTNhJTJmJTJma21haW4ta2RzLWV1czItMC5jbG91ZGFwcC5uZXQlMmYmRXhwaXJlc09uPTEzOTQ3NjExODEmSXNzdWVyPWh0dHBzJTNhJTJmJTJmdG9sZWRvLmFjY2Vzc2NvbnRyb2wud2luZG93cy5uZXQlMmYmSE1BQ1NIQTI1Nj1iVTg4cWs2OFc3bmFxOEZFam1EVUFWSlQySzZ5cCUyYkxmdGR4SlFlWDhsYXclM2Q=</wsse:BinarySecurityToken>
我也尝试将编码更改为utf-8,但没有任何区别。什么原因导致解析器失败并出现错误111?解析器设置不正确,还是XML杀了它?
答案 0 :(得分:0)
原来我只是传递了一个完全错误的字符串。 XML块来自一个更大的JSON结构,然后我将其处理以获得唯一的XML部分;但是当我在解析器中时,我使用了错误的字符串来创建NSData。因此,请确保您没有混合变量。我仍然不确定为什么错误111没有在文档中定义。
答案 1 :(得分:0)
在 NSXMLParserError 文档中,它说:
The following error codes are defined by NSXMLParser. For error codes not listed here, see the <libxml/xmlerror.h> header file.
此列表中未提及数字 111,因此我们转到 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2/libxml/xmlerror.h
,并找到该值:
XML_ERR_USER_STOP, /* 111 */
libxml2 中关于 XML_ERR_USER_STOP 的文档并不多,但从读取变更集来看,当解析器看到意外的 EOF 时,它看起来像是快速失败。
引用 DebugCN 和 Internet。