#iphone #objective-c #xml #ios
#iPhone #objective-c #xml #iOS
Вопрос:
Привет, какой-нибудь орган, помогите мне, я использую один xmlфайл, например
<?xml version="1.0" encoding="UTF-8"?>
<MangoUserDataFile>
<Device>iPad</Device>
<Version>3.0</Version>
<UserName>XYZ</UserName>
<UserType>Admin</UserType>
<Module>TabView</Module>
<tab id="1">
<item>
<name>Admin</name>
<value>WebView</value>
<image>20</image>
</item>
</tab>
</MangoUserDataFile>
Я хочу добавить больше элементов в этот xmlфайл с iPad
Для exmaple я создаю несколько текстовых полей под названием:
nametextfiled
, valuetextfiels
, imagetextfield
… и как только я ввожу значение в эти текстовые поля и нажимаю отправить, в этот момент в этом XML-файле должны быть созданы другие элементы
Может ли какой-нибудь орган дать мне какие-либо идеи по поводу того, как мы добавим еще один элемент в xmlfile с iPad.
Ответ №1:
В этом случае вам следует переписать все элементы в новый XML-файл и попытаться заменить старый XML-файл новым.
Запись может быть выполнена с использованием этих классов:
//
// XMLBuilder.h
// TaxiSharing
//
// Created by Erle on 02.07.09.
// Copyright 2009 University of Duisburg-Essen,
// Institute of Computer Science and Business Computer Science
// Group for Pervasive Computing and User Interface Engineering
// All rights reserved.
//
#import <Foundation/Foundation.h>
@interface XMLBuilder : NSObject {
NSMutableString *XMLString;
}
@property(nonatomic,retain) NSMutableString *XMLString;
-(void)addTagToXML:(NSString *)tag withValue:(NSString *)value;
-(void)addSelfClosedTag:(NSString *)tag withInnerValueTitle:(NSString *)innerValueTitle andValue:(NSString *)value;
-(void)addSelfClosedTag:(NSString *)tag withInnerString:(NSString *)innerString;
-(void)addSingleTag:(NSString *)tag withInnerString:(NSString *)innerString;
-(void)addSingleValue:(NSString *)value;
-(void)addSingleTag:(NSString *)tag;
-(void)endSingleTag:(NSString *)tag;
-(void)closeXML;
@end
//
// XMLBuilder.m
// TaxiSharing
//
// Created by Erle on 02.07.09.
// Copyright 2009 University of Duisburg-Essen,
// Institute of Computer Science and Business Computer Science
// Group for Pervasive Computing and User Interface Engineering
// All rights reserved.
//
#import "XMLBuilder.h"
@implementation XMLBuilder
@synthesize XMLString;
-(id)init{
[super init];
XMLString = [[NSMutableString alloc] initWithFormat:@"<?xml version="1.0" encoding="UTF-8"?> n"];
return self;
}
-(void)addTagToXML:(NSString *)tag withValue:(NSString *)value{
[XMLString appendFormat:@"<%@>%@</%@> n",tag,value,tag];
}
-(void)addSelfClosedTag:(NSString *)tag withInnerValueTitle:(NSString *)innerValueTitle andValue:(NSString *)value{
[XMLString appendFormat:@"<%@ %@=%@ /> n",tag,innerValueTitle,value];
}
-(void)addSelfClosedTag:(NSString *)tag withInnerString:(NSString *)innerString{
[XMLString appendFormat:@"<%@ %@ /> n",tag,innerString];
}
-(void)addSingleTag:(NSString *)tag withInnerString:(NSString *)innerString{
[XMLString appendFormat:@"<%@ %@ > n",tag,innerString];
}
-(void)addSingleValue:(NSString *)value{
[XMLString appendFormat:@"%@ n",value];
}
-(void)addSingleTag:(NSString *)tag{
[XMLString appendFormat:@"<%@> n",tag];
}
-(void)endSingleTag:(NSString *)tag{
[XMLString appendFormat:@"</%@> n",tag];
}
-(void)closeXML{
[XMLString appendFormat:@"n"];
}
-(void)dealloc{
[super dealloc];
[XMLString release];
}
@end
Я нашел этот код на http://www.iphonedevsdk.com/forum/tutorial-requests/34645-how-create-xml-file-dynamically.html.
Комментарии:
1. В основном мое требование заключается в том, что всякий раз, когда мы вводим имя, значение, изображение в текстовые поля и нажимаем, чтобы отправить в это время его добавление в xmlfile, если у вас есть какой-либо связанный код, пожалуйста, пришлите мне, чтобы я мог использовать этот. Или, пожалуйста, скажите мне, как обновить старый xml-файл на новый xml-файл. мое требование — добавить элемент в xmlfile, когда я нажимаю кнопку отправки, тогда значение, которое я ввожу в nametextfield, обновится в name, valuetextfield обновится как значение, а image textfield обновится как изображение. Пожалуйста, дайте мне любую идею, как это сделать. Спасибо