Mat*_*ros 2 xml xcode objective-c ios tbxml
该指南告诉我有四个文件,TBXML.h,TBXML.m,NSDataAdditions.h,和NSDataAdditions.m,但后两者都无处可寻GitHub的回购.
我试图运行示例项目TBXML-Books,希望复制TBXML如何导入项目,但它也不能在Xcode 5中成功构建.它找不到libTBXML-iOS.a.
有人帮忙吗?提前致谢.
在项目的Target> Build Phases中,将编译器标志添加-fno-objc-arc到TBXML.m.
TBXML *sourceXML = [[TBXML alloc] initWithXMLFile:@"dictionary.xml" error:nil];
Run Code Online (Sandbox Code Playgroud)
您可以使用其他init实例方法alloc-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;
Run Code Online (Sandbox Code Playgroud)
<dictionary>
<entry id="">
<text></text>
</entry>
<entry id="">
<text></text>
</entry>
</dictionary>
Run Code Online (Sandbox Code Playgroud)
TBXMLElement *rootElement = sourceXML.rootXMLElement;
TBXMLElement *entryElement = [TBXML childElementNamed:@"entry" parentElement:rootElement];
Run Code Online (Sandbox Code Playgroud)
NSString *id = [TBXML valueOfAttributeNamed:@"id" forElement:entryElement];
Run Code Online (Sandbox Code Playgroud)
TBXMLElement *textElement = [TBXML childElementNamed:@"text" parentElement:entryElement];
NSString *text = [TBXML textForElement:textElement];
Run Code Online (Sandbox Code Playgroud)
如果我想打印出每个<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);
Run Code Online (Sandbox Code Playgroud)
我没有亲自尝试遍历这些属性,但我认为你可以做一些类似的事情entryElement->firstAttribute,如旧指南中所示.你也可以看看TBXML.h如何去做.
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |