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