NSXMLParser因NSXMLParserErrorDomain错误111而失败;错误111没有定义?

时间:2014-03-19 18:44:36

标签: ios xml nsxmlparser

之前有些人似乎遇到过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杀了它?

2 个答案:

答案 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。