Date
Dec. 25th, 2024
 
2024年 11月 25日

Post: iOS 入门 018: XML 浅析

iOS 入门 018: XML 浅析

Published 12:04 Apr 19, 2012.

Created by @ezra. Categorized in #Programming, and tagged as #iOS.

Source format: Markdown

Table of Content

XML

  • 可扩展标记语言

  • 区分大小写

  • 命名不能以xml(XMLXml...)、数字、下划线开头,不能出现冒号

  • <?xml version="1.0" standalone="no" encoding="UTF-8"?>

  • W3C认证,IBM & Microsoft联合推广

  • 能够解决所有异构数据库系统之间的数据传递

DTD

  • 验证XML元素是否符合规范
<!DOCTYPE myfile = [<!ELEMENT name (#PCDATA)>]>

元素

  • <name>Bill</name>

属性

  • <name color="red">Bill</name>color="red"

注释

  • <!--起始

  • -->结束

验证

解析

NSXMLParser

  • 需要遵守<NSXMLParserDelegate>协议

parser

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parser];
  • 开始解析文档,做一些准备工作

    • - (void)parserDidStartDocument:(NSXMLParser *)parser {}
  • 找到元素

    • - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementNam namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attribute {}
  • 找到元素内容

    • - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {}
  • 元素结束

    • - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {}
  • 结束文档解析,通常做一些收尾工作,就可以更新UI了

    • - (void)parserDidEndDocument:(NSXMLParser *)parser {}
  • 在网络处理中通常需要做相应的错误处理

    • - (void)parser:(NSXMLParser *)parser

\b<[1]{a-z0-9}+\s?{a-z0-9}*\=?"?{a-z0-9}*"?>[1]\w+<[1]/[1]{a-z0-9}+>[1]\b

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询