gpt4 book ai didi

ios - 将 XML 数据解析为核心数据

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:19 27 4
gpt4 key购买 nike

我正在尝试从在线 xml 文件中获取数据并将其放入我的核心数据中。

我可以成功检索数据,甚至可以将其放入核心数据中,但似乎只存储了最后检索到的提要。

Here是我要检索的 xml 文件的示例。

解析器代码示例:

    func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if (elementName as NSString).isEqualToString("question") {
if !xml_tmp1.isEqual(nil) {
elements.setObject(xml_tmp1, forKey: "text")
}
if !xml_tmp2.isEqual(nil) {
elements.setObject(xml_tmp2, forKey: "answer0")
}

if !xml_tmp3.isEqual(nil) {
elements.setObject(xml_tmp3, forKey: "answer1")
}

if !xml_tmp4.isEqual(nil) {
elements.setObject(xml_tmp4, forKey: "answer2")
}

if !xml_tmp5.isEqual(nil) {
elements.setObject(xml_tmp5, forKey: "answer3")
}
tmp_xml.addObject(elements)
}
}

核心数据代码示例:

    func temp_func() {
var n: Int = tmp_xml.count
var i: Int = 0

var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!

var tmp = NSEntityDescription.insertNewObjectForEntityForName("Questions", inManagedObjectContext: context) as! NSManagedObject

while (i != br) {
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("text"), forKey: "question")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer0"), forKey: "answer_1")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer1"), forKey: "answer_2")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer2"), forKey: "answer_3")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer3"), forKey: "answer_4")

i++
}

context.save(nil)
}

所以基本上,我应该在我的核心数据中获得三个新条目,但只存储最后一个(15 * 7 问题)。

最佳答案

我认为你只是在 U 核心数据和 U setValue 中创建一个条目而不是保存它。所以核心数据中只保存最后一个Entry。你可以在 while 循环中创建条目。像这样看到它可以工作吗?

func temp_func() {
var n: Int = tmp_xml.count
var i: Int = 0

var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!


while (i != br) {
var tmp = NSEntityDescription.insertNewObjectForEntityForName("Questions", inManagedObjectContext: context) as! NSManagedObject
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("text"), forKey: "question")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer0"), forKey: "answer_1")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer1"), forKey: "answer_2")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer2"), forKey: "answer_3")
tmp.setValue(tmp_xml.objectAtIndex(i).valueForKey("answer3"), forKey: "answer_4")

i++
}

context.save(nil)
}

关于ios - 将 XML 数据解析为核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326077/

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