日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[iphone]XML 解析 之 TBXML 介绍

發布時間:2025/3/15 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [iphone]XML 解析 之 TBXML 介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?總的來說,iphone 上可用的解析XML的方式大概有2種類型的。

?

1.Tree-based API:這種API的處理方式是將XML的結構看成是樹,然后把樹的各部分看成一個對象來處理,這就是我們說的DOM (Document Object Model)方式。在iPhoneSDK里包含了一個libxml2的框架(Framework)就能進行DOM解析方式。GoogleGDataXML也是基于libxml2的,因此在使用GDataXML之前,你需要先導入libxml2

?

2.Event-driven API:這種方式通常用于解析基于的事件,SAX解析方式就是這種解析方式的代表。在iPhone開發的,也可以利用這種方式來解析XML,不過這可不是Iphone SDK的屬性啊,而是Objective-C的功能。在Objectvie-C種有專門解析XML的類NSXMLParser

?r TBXML are:

  • XML files conforming to the W3C XML spec 1.0 should be passable
  • XML parsing should incur the fewest possible resources
  • XML parsing should be achieved in the shortest possible time
  • It shall be easy to write programs that utilise TBXML

Design Goals

Check out this post for a good comparison of XML parsers. “How To Chose The Best XML Parser for Your iPhone Project”

Performance

  • TBXML.zip
  • TBXML-Books.zip
  • Version changes

?介紹一種輕量級的XML解析方式,TBXML。

按著以上兩個分類的話,算是DOM 的解析方式。需要去找尋root 節點。然后按著名字順序查找。找到某個節點之后,如果需要找尋孩子信息,那么使用這個節點做為parent,繼續向里面查找。

?

正如他的官方介紹所說TBXML 具有如下特點:

?

速度快,效率高,占用的額外資源少。耗時短。

本人看來,用起來確實方便。上手容易,快速。

常用的初始化方式有。如下幾種。?

?

+ (id)tbxmlWithURL:(NSURL*)aURL;

+ (id)tbxmlWithXMLString:(NSString*)aXMLString;

+ (id)tbxmlWithXMLData:(NSData*)aData;

+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile;

+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension;


- (id)initWithURL:(NSURL*)aURL;

- (id)initWithXMLString:(NSString*)aXMLString;

- (id)initWithXMLData:(NSData*)aData;

- (id)initWithXMLFile:(NSString*)aXMLFile;

- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension;


@end


?

?靜態方法也不過7種而已。

?

// ================================================================================================

//? TBXML Static Functions Interface

// ================================================================================================


@interface TBXML (StaticFunctions)


+ (NSString*) elementName:(TBXMLElement*)aXMLElement;

+ (NSString*) textForElement:(TBXMLElement*)aXMLElement;

+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement;


+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute;

+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute;


+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement;

+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement;


@end?

?

?

上一個本人實際的例子,大家一看就行,你懂的。。

?

?

+(NSString *)getOPFFolderName:(NSString *)prefixName

{

//doc/ldj/META-INF/container.xml;

//<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">

// <rootfiles>

// <rootfile full-path="OPS/fb.opf" media-type="application/oebps-package+xml"/>

// </rootfiles>

// </container>

NSString *path = [NSString stringWithFormat:[NSHomeDirectory()?

stringByAppendingPathComponent:

@"/Documents/%@/META-INF/container.xml"],prefixName];


TBXML *containeXML = [TBXML tbxmlWithURL:[NSURL fileURLWithPath:path]];

TBXMLElement *root = containeXML.rootXMLElement;

//TBXMLElement *container= [TBXML childElementNamed:@"container" parentElement:root];


TBXMLElement *rootfile = [TBXML childElementNamed:@"rootfile" parentElement:

? [TBXML childElementNamed:@"rootfiles" parentElement:

? root]];

return [TBXML valueOfAttributeNamed:@"full-path" forElement:rootfile];

}?

?

?參考文章:

?

http://www.tbxml.co.uk/TBXML/TBXML_Free.html?

http://www.norkoo.com/show/New_Tech/IPhone/dfdikhjijkagekigicgkgcdkiheb.aspx

?

?

??

?

轉載于:https://www.cnblogs.com/AlexLiu/archive/2010/10/25/1860292.html

總結

以上是生活随笔為你收集整理的[iphone]XML 解析 之 TBXML 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。