NSXML解析器和异常/错误处理Swift 2.0

庞恰

因此,让我
我所能地简单和简短地进行说明...我正尝试通过swift通过常规方法从url解析xml文件:

if let parser = NSXMLParser(contentsOfURL: xml) {
        parser.delegate = self

        let success:Bool = parser.parse()

        if success {
            print("parse success")

        } else {
            print("parse failure!")
        }
    }   

它可以工作,但是遇到诸如重音符号之类的特殊字符时,一切都会变得一团糟,因此我在这里发现,如果不是直接解析URL,而是使用NSData进行编码。
当我第一次尝试使用catch and try进行swift 2.0和错误处理时,对此并不太了解。这是我的代码:

do{
        let dataString = try String(contentsOfURL: XML, encoding: NSUTF8StringEncoding)
        let data:NSData = dataString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!

        if let parser = NSXMLParser(data: data) as NSXMLParser! {
            parser.delegate = self

            let success:Bool = parser.parse()

            if success {
                print("parse success")

            } else {
                print("parse failure!")
            }
        }

    }catch {
        print("catch failure!")
    }

但这总是返回“捕获失败!”,URL正常并且可以正常工作,而其他方法可以正常工作(特殊字符除外),我真的很茫然。

提前非常感谢您!

庞恰

遵循另一个答案在这里,我能够解决此问题。

而不是使用:

func parser(parser: NSXMLParser, foundCharacters string: String) {
    if (currentElement != ""){
            currentString = string

    }

}

我用了:

func parser(parser: NSXMLParser, foundCharacters string: String) {
    if (currentElement != ""){
            currentString += string

    }

}

一切都按预期进行!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“%%2:”和“ number%2 == 0”之间的区别?

来自分类Dev

解析器错误-自动生成错误处理的模式

来自分类Dev

柠檬解析器解析0令牌

来自分类Dev

IdeaVim / PyCharm错误处理0键

来自分类Dev

Swift 2中使用Alamofire进行错误处理

来自分类Dev

Retrofit 2和RxJava错误处理运算符

来自分类Dev

如何定义一个列表,该列表的结果为序列[(0,0),(1,0),(2,0),(3,0)等]和[(0,0),(0,1 ),(0,2),(0,3)等]

来自分类Dev

由于处理器 0 上的 L2 缓存组 6 错误导致机器检查异常,启动我的内核驱动程序 (StartService) 导致 0x124 蓝屏

来自分类Dev

Cakephp报告级别0的2个错误

来自分类Dev

教类型检查器2 ^ e≢0

来自分类Dev

Angular2解析器错误意外令牌

来自分类Dev

解析“ 0xFF000000”时的整数解析器错误

来自分类Dev

解析“ 0xFF000000”时的整数解析器错误

来自分类Dev

“解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

来自分类Dev

错误处理 0x800706BA - 找不到 RPC 服务器

来自分类Dev

简单的解析器 - 当 len(tokens) 大于 0 时,为什么会引发“语法错误”?

来自分类Dev

带有 Room 错误处理的 RxJava2 - 数据库主线程异常

来自分类Dev

ZF2异常处理程序使PHP解析错误无效

来自分类Dev

Angular2:HTTP错误处理

来自分类Dev

Retrofit2错误处理

来自分类Dev

Angular 2 http 服务错误处理

来自分类Dev

0x50E2DF58(msvcp120d.dll)的未处理异常

来自分类Dev

ASP.NET WEB API 2:异常处理程序和记录器无法处理所有错误

来自分类Dev

通过TCP / IP接收数据时HL7V2 HAPI解析器异常

来自分类Dev

LR(0)解析器也不使用超前功能吗?

来自分类Dev

OpenCV Python 3.7异步处理cv2.VideoCapture(0)

来自分类Dev

如何处理从0到2 ^ 95的循环?

来自分类Dev

Apache 2错误日志仅显示错误消息“ 0”

来自分类Dev

ArgumentError处的参数数目错误/错误(0表示2)

Related 相关文章

  1. 1

    “%%2:”和“ number%2 == 0”之间的区别?

  2. 2

    解析器错误-自动生成错误处理的模式

  3. 3

    柠檬解析器解析0令牌

  4. 4

    IdeaVim / PyCharm错误处理0键

  5. 5

    Swift 2中使用Alamofire进行错误处理

  6. 6

    Retrofit 2和RxJava错误处理运算符

  7. 7

    如何定义一个列表,该列表的结果为序列[(0,0),(1,0),(2,0),(3,0)等]和[(0,0),(0,1 ),(0,2),(0,3)等]

  8. 8

    由于处理器 0 上的 L2 缓存组 6 错误导致机器检查异常,启动我的内核驱动程序 (StartService) 导致 0x124 蓝屏

  9. 9

    Cakephp报告级别0的2个错误

  10. 10

    教类型检查器2 ^ e≢0

  11. 11

    Angular2解析器错误意外令牌

  12. 12

    解析“ 0xFF000000”时的整数解析器错误

  13. 13

    解析“ 0xFF000000”时的整数解析器错误

  14. 14

    “解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

  15. 15

    错误处理 0x800706BA - 找不到 RPC 服务器

  16. 16

    简单的解析器 - 当 len(tokens) 大于 0 时,为什么会引发“语法错误”?

  17. 17

    带有 Room 错误处理的 RxJava2 - 数据库主线程异常

  18. 18

    ZF2异常处理程序使PHP解析错误无效

  19. 19

    Angular2:HTTP错误处理

  20. 20

    Retrofit2错误处理

  21. 21

    Angular 2 http 服务错误处理

  22. 22

    0x50E2DF58(msvcp120d.dll)的未处理异常

  23. 23

    ASP.NET WEB API 2:异常处理程序和记录器无法处理所有错误

  24. 24

    通过TCP / IP接收数据时HL7V2 HAPI解析器异常

  25. 25

    LR(0)解析器也不使用超前功能吗?

  26. 26

    OpenCV Python 3.7异步处理cv2.VideoCapture(0)

  27. 27

    如何处理从0到2 ^ 95的循环?

  28. 28

    Apache 2错误日志仅显示错误消息“ 0”

  29. 29

    ArgumentError处的参数数目错误/错误(0表示2)

热门标签

归档