Использование переменной в запросе XPath .. Это возможно?
Вопрос
Может ли кто-нибудь, пожалуйста, сообщите мне, как мы используем функцию текста с переменной в запросе XPath в C-Teactive для iPhone. Мне нужна была информация для инженерной библиотеки, присутствующей в XML
http://www.sis.pitt.edu/~arazeez/librarydata.xml.
NSString *libName = @"Engineering Library";
NSMutableString *xpathquery = [[NSMutableString alloc] init];
[xpathquery appendString:@"//Library[LibraryName/text() = '"];
[xpathquery appendString:libName];
[xpathquery appendString:@"']/../Hours/TermOrHolidays"];
resultNodes = [rssParser nodesForXPath:xpathquery error:nil];
или другой вариант
NSString *string1 = @"//LibraryName[text() = '";
NSString *string2 = @"']/../Hours/TermOrHolidays";
NSString *newString; NSString *newString1;
newString = [string1 stringByAppendingString:libName];
newString1 = [newString stringByAppendingString:string2];
NSLog(newString1);
//correct one below //resultNodes = [rssParser nodesForXPath:@"//LibraryName[text()= 'Engineering Library']/../Hours/TermOrHolidays" error:nil];
resultNodes = [rssParser nodeForXPath:newString1 error:nil];
Если этот метод не прав, может кто-то, пожалуйста, сообщите мне, как получить данные для инженерной библиотеки. Я не хочу использовать слово напрямую, но хочу использовать его через переменную.
Спасибо
Решение
Может быть проще построить строку с использованием [NSSTRING STRINGWITHFORMAT: @ »// listanceName [Text () = '% @'] /../ Часы / termorholidays", averevariable
Тогда до тех пор, пока запрос XPath в порядке, это будет работать.
Другие советы
Как насчет использования этого XPath:
//Library[@name='Engineering Library']/Hours/TermOrHolidays
Или этот:
//Library[LibraryName='Engineering Library']/Hours/TermOrHolidays