解析 XML 项目“类别”使用 NSDictionary 转换为 NSArray
问题:
从 .XSD 模板生成的 XML 文件会产生下面粘贴的输出。由于 category
的键是 image
,这是我解析 image
的标准方法项目不适用于类别
。我想将 category name="Category #"
放入一个数组中,如何从类别字段中创建一个数组。
我需要什么:
我想要的是一系列字典。每个位置都包含一个代表一个类别的字典,每个字典都包含该类别的图像。
数组:@"类别 1",@"类别 2",@"类别 3";
对于每个数组,都有一个包含以下内容的字典:
以及之间的所有内容基本上,我需要从 XML 数据源创建一个如下图所示的 plist
XML 输出:
<?xml version="1.0" encoding="UTF-8"?>
<app xmlns="http://www.wrightscs.com/_xml_.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wrightscs.com/_xml_.xsd" name="Testing" unlock_product_id="com.wrightscs.all">
<bannerImg>http://www.wrightscs.com</bannerImg>
<category name="Category 1" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
<category name="Category 2" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
<category name="Category 3" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
</app>
注意:没有其他项目/ 键是一个问题,我只对将类别放入数组感兴趣。此示例中的 URL 也替换为原始内容。
Question:
The generated XML file from an .XSD template produces the output pasted below. Since category
's keys are image
, my standard way of parsing the image
items wont work on category
. I would like to place the category name="Category #"
into an array, How can I make an array from the category fields.
What I need:
What I want is an array of dictionaries. Each position contains a dictionary representing one category, and each dictionary contains images for that category.
Array: @"Category 1",@"Category 2",@"Category 3";
For each Array, a Dictionary with: <image>
and everything in between</image>
Basically, I need to create a plist like the following image, from the XML data source
XML Output:
<?xml version="1.0" encoding="UTF-8"?>
<app xmlns="http://www.wrightscs.com/_xml_.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wrightscs.com/_xml_.xsd" name="Testing" unlock_product_id="com.wrightscs.all">
<bannerImg>http://www.wrightscs.com</bannerImg>
<category name="Category 1" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
<category name="Category 2" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
<category name="Category 3" icon="http://www.wrightscs.com">
<image>
<title>title</title>
<thumbUrl>http://www.wrightscs.com</thumbUrl>
<sampleUrl>http://www.wrightscs.com</sampleUrl>
<imageUrl>http://www.wrightscs.com</imageUrl>
<description>These items / keys not an issue.</description>
<infoUrl>http://www.wrightscs.com</infoUrl>
<license>http://www.wrightscs.com</license>
<licenseUrl>http://www.wrightscs.com</licenseUrl>
</image>
</category>
</app>
Note: none of the other items / keys are an issue, I am only interested in making category into an array. The URL's in this example are also replaced from the original content.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看看 xpath 和这个: http: //blog.objectgraph.com/index.php/2010/02/24/parsing-html-iphone-development/
在这种情况下,您需要的 xpath 是
//category/@name
这与上面提到的库应该返回数组中的类别名称。
有关更多 xpath 语法,请检查: http://www.w3schools.com/xpath/default.asp
take a look to xpath and this: http://blog.objectgraph.com/index.php/2010/02/24/parsing-html-iphone-development/
in this case the xpath you need is
//category/@name
this with the library mentioned above should return the categories names in a array.
for more xpath syntax, check this: http://www.w3schools.com/xpath/default.asp
解决方案:
The Solution: