gpt4 book ai didi

ios - 使用 GDataXML 获取 XML 响应值

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:58 27 4
gpt4 key购买 nike

在 HTTP Post 之后,我检索了如下所示的 xml 响应:

<result value="OK">
<user id="1">
<name>admin</name>
<rank>0</rank>
<picture_count>0</picture_count>
<comment_count>0</comment_count>
<has_profile>1</has_profile>
</user>
</result>

我想提取用户 ID,但我不知道该怎么做。我尝试使用 GDataXML 解析器,因为它已经集成到我的项目中,但是我不知道如何在 html 标签中获取值。

我希望你能帮助我。如果 XMLParser 没有解决方案,您会推荐正则表达式吗?在这种情况下,我会很感激正则表达式的解决方案,我不是很擅长这个:)

提前致谢。

最佳答案

这是我用来检索用户属性的代码。它有效。

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"];

NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData
options:0 error:&error];

NSArray *userElements = [doc.rootElement elementsForName:@"user"];

for (GDataXMLElement *userEl in userElements) {

// Attribute
NSString *attribute = [(GDataXMLElement *) [userEl attributeForName:@"id"] stringValue];
NSLog(@"attribute for user is %@", attribute);

// Name
NSArray *names = [userEl elementsForName:@"name"];
if (names.count > 0) {
GDataXMLElement *name = (GDataXMLElement *) [names objectAtIndex:0];

NSLog(@"name for user is %@", name.stringValue);
}

// Rank
NSArray *ranks = [userEl elementsForName:@"rank"];
if (ranks.count > 0) {
GDataXMLElement *rank = (GDataXMLElement *) [ranks objectAtIndex:0];

NSLog(@"rank for user is %@", rank.stringValue);
}

// Do the same for other tags...
}

[doc release];
[xmlData release];

文件 test.xml 与您从 xml 响应中检索到的文件相同。所以你需要更改这段代码的第二行。或许你可以调用initWithData类的方法NSData .

你可以把这段代码放在你想要的地方。也许您可以创建一个其他类作为集中式解析器。希望对你有帮助

编辑

将这两行放在前面以供说明。

NSString *valAttribute = [(GDataXMLElement *) [doc.rootElement attributeForName:@"value"] stringValue];        
NSLog(@"value attribute for result is %@", valAttribute);

解释很简单。与 doc.rootElement您从 <result> 检索整个 xml 文档至 </result>

关于ios - 使用 GDataXML 获取 XML 响应值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com