gpt4 book ai didi

iphone - 使用 TouchXML 解析 NSString?

转载 作者:行者123 更新时间:2023-11-28 17:45:26 25 4
gpt4 key购买 nike

我正在尝试使用 SOAP 解析从我的 WebService 接收到的以下字符串。由于我无法解析从我的 Web 服务接收到的数据(我不知道为什么......请看这里 parsing XML using Soap Web Services)我正在将数据转换为 NSString,然后使用 TOUCHXML 解析字符串

NSString *theXML = [[NSString alloc] 
initWithBytes: [webData mutableBytes]
length:[webData length]
encoding:NSUTF8StringEncoding];

我得到的字符串是

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">

<s:Body>

<GetCategoryResponse xmlns="http://tempuri.org/">

<GetCategoryResult>

<Root>

<Record>

<catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo>

</Record>

</Root>

</GetCategoryResult>

</GetCategoryResponse>

</s:Body>

</s:Envelope>

因为我无法让任何解析器读取我从 webservice 获得的 NSData,所以我将上面的字符串转换为以下字符串(即我需要的确切 xml)

<Root><Record><catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo></Record></Root>

CXMLDocument *doc = [[CXMLDocument alloc] initWithXMLString:check options:0 error:nil];



NSArray *items = [doc nodesForXPath:@"//Root" error:nil];




for (CXMLElement *item in items)

{


NSLog(@"Root");

NSArray *titles = [item elementsForName:@"Record"];

for(CXMLElement *title in titles)
{
NSLog(@"Record");

break;
}

NSArray *categories = [item elementsForName:@"catid"];

for(CXMLElement *category in categories)
{
NSLog(@"catid");

break;
}


NSArray *artists = [item elementsForName:@"catname"];

for(CXMLElement *artist in artists)
{
NSLog(@"catname");

break;
}
.
.
.
.

Root 和 Record 日志被调用,而 catid 从未被调用。我可能做错了什么??

最佳答案

我认为你是在记录下搜索 catid(而不是在 root 下)所以改变

 NSArray *categories = [item elementsForName:@"catid"];

NSArray *categories = [titles elementsForName:@"catid"];

我的意思是,在记录下搜索元素 catid,而不是在根目录下。

我上面的代码可能会给你编译错误,因为我还没有处理过 TouchXML,但你知道我的意思。

关于iphone - 使用 TouchXML 解析 NSString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235124/

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