gpt4 book ai didi

iphone - 将 XML 解析为 NSMutableArray

转载 作者:行者123 更新时间:2023-11-28 20:22:59 25 4
gpt4 key购买 nike

我的 Web 服务中有以下格式的 XML。

<xml>
<Menu>
<pair>
<MenuCategory shortname="Starters Menu" description_en="hgfhghgh" image="Small.jpg" description_fr="" description_ge="" description_it="" description_sp="" description_ch="">
<MenuItems>
<menuItem price="666" image="060649XSmall.jpg" shortname="kandan" description_en="kandan" description_fr="" description_ge="" description_it="" description_sp="" description_ch=""/>
<menuItem price="250" image="3.jpg" shortname="Vegetable Soups" description_en="Vegetable Soups" description_fr="" description_ge="" description_it="" description_sp="" description_ch=""/>
<menuItem price="52" image="3.jpg" shortname="Mixed Starters" description_en="Mixed Starters" description_fr="" description_ge="" description_it="" description_sp="" description_ch=""/>
<menuItem price="45" image="14.jpg" shortname="Pumpkin soup" description_en="Pumpkin soup" description_fr="" description_ge="" description_it="" description_sp="" description_ch=""/>
<menuItem price="15" image="15.jpg" shortname="Almondrolledgoatsche" description_en="Almondrolledgoatsche" description_fr="" description_ge="" description_it="" description_sp="" description_ch=""/>
</MenuItems>
</MenuCategory>
</pair>
</Menu>
</xml>

我已尝试使用 TBXML 从我的网络服务中解析此 XML。但是,还没有得到我的输出,

TBXML *XML = [[TBXML alloc]initWithURL:[NSURL URLWithString:urlString]];
TBXMLElement *rootXML = XML.rootXMLElement;
TBXMLElement *e = [TBXML childElementNamed:@"MenuItems" parentElement:rootXML];
NSString *woeid = [TBXML textForElement:e->firstChild];
NSLog(@"Woeid - %@", woeid);

它简单地抛出 EXEC_BAD_ACCESS 错误。我只需要将此 xml 解析为我的 NSMutableArray 有很多与此相关的示例。但是,不知道哪个适合我的要求。有人以这种格式工作过吗?知道如何实现吗?

最佳答案

您可以使用 XMLReader将 xml 数据解析为 NSDictionary 或 NSArray 或 MutableArray 的文件。将其用作:

NSError *error=nil;

NSString *responseString=[NSString stringWithFormat:@"<xml><Menu><pair><MenuCategory shortname=\"Starters Menu\" description_en=\"hgfhghgh\" image=\"Small.jpg\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"><MenuItems><menuItem price=\"666\" image=\"060649XSmall.jpg\" shortname=\"kandan\" description_en=\"kandan\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"/><menuItem price=\"250\" image=\"3.jpg\" shortname=\"Vegetable Soups\" description_en=\"Vegetable Soups\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"/><menuItem price=\"52\" image=\"3.jpg\" shortname=\"Mixed Starters\" description_en=\"Mixed Starters\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"/><menuItem price=\"45\" image=\"14.jpg\" shortname=\"Pumpkin soup\" description_en=\"Pumpkin soup\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"/><menuItem price=\"15\" image=\"15.jpg\" shortname=\"Almondrolledgoatsche\" description_en=\"Almondrolledgoatsche\" description_fr=\"\" description_ge=\"\" description_it=\"\" description_sp=\"\" description_ch=\"\"/></MenuItems></MenuCategory></pair></Menu></xml>"];

NSDictionary *dictionary=[XMLReader dictionaryForXMLString:responseString error:&error];

NSLog(@"dictioanry is %@",dictionary);

NSMutableArray *menuItemsArray=[[NSMutableArray alloc] initWithArray:[[[[[[dictionary valueForKey:@"xml"] valueForKey:@"Menu"] valueForKey:@"pair"] valueForKey:@"MenuCategory"] valueForKey:@"MenuItems"] valueForKey:@"menuItem"]];

NSLog(@"menu item array is %@",menuItemsArray);

控制台日志:--------

    dictioanry is {
xml = {
Menu = {
pair = {
MenuCategory = {
MenuItems = {
menuItem = (
{
"description_ch" = "";
"description_en" = kandan;
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "060649XSmall.jpg";
price = 666;
shortname = kandan;
},
{
"description_ch" = "";
"description_en" = "Vegetable Soups";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "3.jpg";
price = 250;
shortname = "Vegetable Soups";
},
{
"description_ch" = "";
"description_en" = "Mixed Starters";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "3.jpg";
price = 52;
shortname = "Mixed Starters";
},
{
"description_ch" = "";
"description_en" = "Pumpkin soup";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "14.jpg";
price = 45;
shortname = "Pumpkin soup";
},
{
"description_ch" = "";
"description_en" = Almondrolledgoatsche;
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "15.jpg";
price = 15;
shortname = Almondrolledgoatsche;
}
);
};
"description_ch" = "";
"description_en" = hgfhghgh;
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "Small.jpg";
shortname = "Starters Menu";
};
};
};
};
}

2013-03-06 11:52:31.500 MobileTrading[1212:11303] menu item array is (
{
"description_ch" = "";
"description_en" = kandan;
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "060649XSmall.jpg";
price = 666;
shortname = kandan;
},
{
"description_ch" = "";
"description_en" = "Vegetable Soups";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "3.jpg";
price = 250;
shortname = "Vegetable Soups";
},
{
"description_ch" = "";
"description_en" = "Mixed Starters";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "3.jpg";
price = 52;
shortname = "Mixed Starters";
},
{
"description_ch" = "";
"description_en" = "Pumpkin soup";
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "14.jpg";
price = 45;
shortname = "Pumpkin soup";
},
{
"description_ch" = "";
"description_en" = Almondrolledgoatsche;
"description_fr" = "";
"description_ge" = "";
"description_it" = "";
"description_sp" = "";
image = "15.jpg";
price = 15;
shortname = Almondrolledgoatsche;
}
)

关于iphone - 将 XML 解析为 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239933/

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