首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GDataXML将XML元素移动到不同的位置

使用GDataXML将XML元素移动到不同的位置
EN

Stack Overflow用户
提问于 2013-06-01 00:58:42
回答 1查看 594关注 0票数 1

我目前正在使用谷歌的GDataXML库来操作我的iOS应用程序中的XML。xml用于填充表视图,因此我想支持(但当前不支持)使用tableView:moveRowAtIndexPath:toIndexPath:将表视图中的行移到不同位置的功能。

有没有一种使用GDataXML很容易做到这一点的方法?

例如,假设我的xml是这样的:

代码语言:javascript
复制
<root>
    <section>    
        <item>
              <name>Item 1</name>
              <description>The first item</description>
        </item>
        <item>
              <name>Item 2</name>
              <description>The second item</description>
        </item>
        <item>
              <name>Item 3</name>
              <description>The third item</description>
        </item>
    </section>
</root>

我必须怎么做才能将Item 3移到Item 1所在的位置之上?这是否类似于在数组的前面插入一个新元素?

谢谢你的帮助!

编辑:稍微修改了一下我的示例xml。我能不能以某种方式把整个<section>换成一个新的?

更新:

如果其他任何人想要像insertChild:atIndex:这样的方法,请查看KissXML库。从GDataXML到KissXML的转换非常容易,因为大多数方法名都是相同的。XML库是在苹果的KissXML类的基础上构建的,它有一个insertChild:atIndex:方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 02:38:15

您可以使用这些项形成一个可变数组。稍微移动一下条目,然后就可以将条目数组保存为xml。

您可以这样编写xml。我已经创建了一个包含键名称和描述的字典数组

代码语言:javascript
复制
GDataXMLElement *rootElement = [GDataXMLNode elementWithName:@"root"];
GDataXMLElement *sectionElement = [GDataXMLNode elementWithName:@"section"];

for (NSDictionary *dict in self.items) {

    GDataXMLElement *itemElement = [GDataXMLElement elementWithName:@"item"];

    GDataXMLElement *nameElement = [GDataXMLNode elementWithName:@"name" stringValue:dict[@"name"]];
    GDataXMLElement *descElement = [GDataXMLNode elementWithName:@"description" stringValue:dict[@"description"]];

    [itemElement addChild:nameElement];
    [itemElement addChild:descElement];

    [sectionElement addChild:itemElement];

}

[rootElement addChild:sectionElement];



GDataXMLDocument *document = [[GDataXMLDocument alloc]
                              initWithRootElement:rootElement];

NSData *xmlData = document.XMLData;

现在可以将此xmlData写入fileLocation。

您可以查看此source code以获得完整的实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16862279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档