gpt4 book ai didi

使用Swift实现iOS App中解析XML格式数据的教程

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用Swift实现iOS App中解析XML格式数据的教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在IOS中,提供了一套解析XML数据的API。其实也很简单,就是NSXMLParser和NSXMLParserDelegate.

可以直接指定到XML的URL去实例化NSXMLParser 。

复制代码 代码如下:

public convenience init?(contentsOfURL url: NSURL)

解析文件,返回的是一次解析的结果 。

复制代码 代码如下:

NSXMLParser.parse() -> Bool

监听解析节点的属性 。

复制代码 代码如下:

NSXMLParserDelegate.parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])

监听解析节点的内容 。

复制代码 代码如下:

NSXMLParserDelegate.parser(parser: NSXMLParser, foundCharacters string: String)

示例:

  。

这里介绍基本的xml数据解析并打印出来. 。

1.准备xml数据 打开记事本,写下

?
1
2
3
4
5
6
7
8
9
10
11
<? xml version = "1.0" encoding = "utf-8" ?>
< students >
   < student id = "001" >
       < name >Bill Gates</ name >
       < age >15</ age >
   </ student >
   < student id = "002" >
       < name >Tim Cook</ name >
       < age >18</ age >
   </ student >
</ students >

保存命名为data.xml. 。

2.解析xml 在Xcode中新建一个项目,把data.xml导入新建的工程中,直接拖进去好了.在ViewController.swift里写下如下代码

复制代码 代码如下:

class ViewController: UIViewController,NSXMLParserDelegate{     override func viewDidLoad() {         super.viewDidLoad()         let parser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("data", ofType: "xml")!))         //1         parser!.delegate = self         parser!.parse()     } 。

  。

    var currentNodeName:String!     func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {         currentNodeName = elementName         if elementName == "student"{             if let id = attributeDict["id"]{             print("id:\(id)")             }         }     } 。

    func parser(parser: NSXMLParser, foundCharacters string: String) {         //2         let str = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())         if str != "" {             print("\(currentNodeName):\(str)")         }     } 。

    override func didReceiveMemoryWarning() {         super.didReceiveMemoryWarning()         // Dispose of any resources that can be recreated.     } } 。

代码注释: 1.使用NSXMLParser需要NSXMLParserDelegate代理 2.去除打印如<student>的标签,如果直接写成 。

复制代码 代码如下:

func parser(parser: NSXMLParser, foundCharacters string: String) {
       print("\(string):\(str)")
 }

将会把前面的标签打印出来. 。

  。

3.代码运行结果 。

?
1
2
3
4
5
6
id:001
name:Bill Gates
age:15
id:002
name:Tim Cook
age:18

  。

最后此篇关于使用Swift实现iOS App中解析XML格式数据的教程的文章就讲到这里了,如果你想了解更多关于使用Swift实现iOS App中解析XML格式数据的教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com