SwiftUI学习笔记【XML解析】

这篇博客主要介绍了在SwiftUI项目中如何进行XML解析。首先,博主提到了XMLParser的基本了解,指出它可能是处理XML的简便方式。接着,详细阐述了新建XML文件并导入项目的步骤。在解析XML部分,讲解了如何根据XML内容创建数据模型,并通过XMLParserDelegate进行节点属性和字符节点的解析。最后,讨论了如何调用和展示解析结果。
摘要由CSDN通过智能技术生成

前言

xml解析百度很多都是OC,我们来干一波Swift吧,群里大佬比较多,语法不会的问大佬,编译器不会的问大佬,炒股的问大佬…Q裙:730772561 大佬太多,不慌。


今日提示:知耻下问,后发先至。

一、XMLParser的了解

对于接触过IOS解析XML的应该很多吧…我是写Android的我司项目会涉及到很多xml解析导出给CAD然后CAD解析完成之后进行绘制编辑等。原生Android有很多对于XML的解析方式[SAX,Pull,DOM等],Flutter的对于XML解析很少了之前就见过XML这个库。

  • 在使用最原始的XMLParser之前,我百度看过其他人封装的解析器,在分离方面显的很麻烦。对于类的构建要求比较高,如果涉及到上千节点的的xml那就太过于麻烦。我们先来最原始基本的,说不定是最舒服的方式。在Swift里面XMLParser为我们开发提供了便利,如下我们看看源码也就三个初始化构造函数init(..),一个开始解析的方法parse(),一个解析器委托delegate,其实最主要的就是解析器委托了,所有解析的过程都交付委托给解析器委托delegate工具了。
open class XMLParser : NSObject {

    //url初始化也可以
    public convenience init?(contentsOf url: URL)
    //根据文件字节bytes data初始化也可以
    public init(data: Data)
    //stream初始化也可以
    @available(iOS 5.0, *) 
    public convenience init(stream: InputStream)

    //XML解析器委托
    unowned(unsafe) open var delegate: XMLParserDelegate?
    
    open var shouldProcessNamespaces: Bool

    open var shouldReportNamespacePrefixes: Bool
    
    @available(iOS 8.0, *)
    open var externalEntityResolvingPolicy: XMLParser.ExternalEntityResolvingPolicy
    
    @available(iOS 8.0, *)
    open var allowedExternalEntityURLs: Set<URL>?

    open func parse() -> Bool

    open func abortParsing()
 
    open var parserError: Error? { get }
 
    open var shouldResolveExternalEntities: Bool
}

二、新建xml文件且导入项目

1.新建.xml文件然后写入你想解析的节点或者已有的及其复杂的.xml文件。我的如下(粘贴的):

<?xml version="1.0" encoding="utf-8"?>
<Users>
    <User id="101">
        <name>航歌</name>
        <tel>
            <mobile>1234567</mobile>
            <home>025-8100000</home>
        </tel>
    </User>
    <User id="102">
        <name>hang
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值