Разделение строки из формата XML - PullRequest
0 голосов
/ 08 февраля 2012

Я делюсь заметкой для evernote, используя evernote api, это успешно, она загружает заметку в evernote.but, но когда я загружаю заметку из evernote в свое приложение, она дает мне заметку в коде xml formate.myдля отправки заметка есть.В моей кнопке нажмите {

 EDAMNote * note = [[[EDAMNote alloc] init]autorelease];
note.title = @"Appname";
NSMutableString *str = [[NSMutableString alloc] initWithString:@"NOTES:"]; 
    for (int i = 0; i<[appDelegate.notesArray count]; i++) { 
        NSString * aString = [[NSString alloc] initWithString:[appDelegate.notesArray objectAtIndex:i]] ;
        NSString * ENML= [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n<en-note>%@",aString];
ENML = [NSString stringWithFormat:@"%@%@", ENML, @"</en-note>"];
    NSLog(@"%@", ENML);

    // Adding the content & resources to the note
    [note setContent:ENML];
    }

, и Evernote отправит значение aString правильно.и мой код загрузки

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Load the EDAMNote object that has guid we have stored in the object
    EDAMNote * note = [(Evernote *)[Evernote sharedInstance] getNote:guid];
// Changing the navigation title & the content block
    noteNavigation.topItem.title = [note title];
    //adding note to textview 
    noteContent.text = [note content];

    // Adding a back button to close the windows
    UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(goBack:)];

    UINavigationItem *item = [[[UINavigationItem alloc] init] autorelease];
    item.leftBarButtonItem = doneButton;
    item.hidesBackButton = YES;
    [noteNavigation pushNavigationItem:item animated:NO];
    noteNavigation.topItem.title = [note title];


}

корректно загружается, но показывает примечание с таким

<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n<en-note> then our noteeeee in this areaaa>

, но я хочу это только then our noteeeee in this areaaa в textview.how, чтобы отфильтровать это

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Один из способов сделать это - использовать NSXMLParser.Если единственное, что вас волнует, - это одна строка, тогда вам будет легко написать делегат вашего парсера.Все, что вам нужно:

  • переменная (используйте NSMutableString) для хранения текста, возможно, с именем noteText

  • a -parser:didStartElement:namespaceURI:qualifiedName:attributes: метод для очистки noteText при получении тега <en-note>

  • a -parser:foundCharacters: для добавления найденных символов в noteText

  • метод -parser:didEndElement:namespaceURI:qualifiedName:, чтобы сделать что-то с noteText, когда он получает тег </en-note>

0 голосов
/ 13 февраля 2012

У Apple есть два встроенных решения для анализа XML-данных на iphone.Реализация XML-синтаксического анализатора NSXMLParser на основе target и реализация синтаксического анализатора XML на основе C под названием libXML2.

http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

http://developer.apple.com/iphone/library/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/iPhoneOSTechnologies/iPhoneOSTechnologies.html

Редактировать:

В этой статье показано, как анализировать XML с использованием NSXMLParser

http://www.codeproject.com/Articles/248883/Objective-C-Fundamentals-NSXMLParser

0 голосов
/ 08 февраля 2012

Вы можете реализовать NSXMLParserDelegate и анализировать xml.Вы можете найти множество образцов, таких как это или это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...