我在项目中遇到了包括TBXML的问题。
TBXML.h
,TBXML.m
,NSDataAdditions.h
和NSDataAdditions.m
,但是在the Github repo中找不到后两个文件。 libTBXML-iOS.a
。 有人帮忙吗?提前致谢。
最佳答案
将TBXML包含到您的项目中
TBXML.h
和TBXML.m
并将它们添加到您的项目中。这两个是您唯一需要的文件。 -fno-objc-arc
添加到TBXML.m
中。 加载XML文档
TBXML *sourceXML = [[TBXML alloc] initWithXMLFile:@"dictionary.xml" error:nil];
您可以将alloc-init与其他init实例方法一起使用,也可以使用类方法样式(我不包括不赞成使用的方法):
- (id)initWithXMLString:(NSString*)aXMLString error:(NSError **)error;
- (id)initWithXMLData:(NSData*)aData error:(NSError **)error;
- (id)initWithXMLFile:(NSString*)aXMLFile error:(NSError **)error;
- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError **)error;
+ (id)newTBXMLWithXMLString:(NSString*)aXMLString error:(NSError **)error;
+ (id)newTBXMLWithXMLData:(NSData*)aData error:(NSError **)error;
+ (id)newTBXMLWithXMLFile:(NSString*)aXMLFile error:(NSError **)error;
+ (id)newTBXMLWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError **)error;
样本XML结构
<dictionary>
<entry id="">
<text></text>
</entry>
<entry id="">
<text></text>
</entry>
</dictionary>
提取元素
TBXMLElement *rootElement = sourceXML.rootXMLElement;
TBXMLElement *entryElement = [TBXML childElementNamed:@"entry" parentElement:rootElement];
提取属性
NSString *id = [TBXML valueOfAttributeNamed:@"id" forElement:entryElement];
提取元素文字
TBXMLElement *textElement = [TBXML childElementNamed:@"text" parentElement:entryElement];
NSString *text = [TBXML textForElement:textElement];
遍历未知元素/属性
如果我想打印出每个
<text>
内每个<entry>
元素内的文本,这就是我要做的:TBXML *sourceXML = [[TBXML alloc] initWithXMLFile:@"dictionary.xml" error:nil];
TBXMLElement *rootElement = sourceXML.rootXMLElement;
TBXMLElement *entryElement = [TBXML childElementNamed:@"entry" parentElement:rootElement];
do {
TBXMLElement *textElement = [TBXML childElementNamed:@"text" parentElement:entryElement];
NSString *word = [TBXML textForElement:textElement];
NSLog(@"%@", word);
} while ((entryElement = entryElement->nextSibling) != nil);
我还没有亲自尝试遍历属性,但是我想您可以执行类似
entryElement->firstAttribute
的操作,如the old guide所示。您也可以只查看TBXML.h
来了解如何进行操作。关于ios - 更新的TBXML指南:如何在iOS 7的Xcode 5中包含TBXML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19277203/