【问题标题】:using variable in xpath query..is it possible?在xpath查询中使用变量..有可能吗?
【发布时间】:2010-06-27 16:36:17
【问题描述】:

有人可以告诉我如何在 iPhone 的 c-objective 中的 XPath 查询中使用带有变量的文本函数。我需要 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];

如果此方法不正确,请有人告诉我如何获取工程库的数据。我不想直接使用这个词,而是想通过一个变量来使用它。

谢谢

【问题讨论】:

    标签: iphone xml parsing touchxml


    【解决方案1】:

    使用 [NSString stringWithFormat:@"//LibraryName[text() = '%@']/../Hours/TermOrHolidays", someVariable] 构造字符串可能更容易]

    那么只要 xpath 查询没问题,它就可以工作。

    【讨论】:

    • 我初始化一个变量 NSString s* = [NSString stringWithFormat:@"//LibraryName[text() = '%@']/../Hours/TermOrHolidays", libName];我尝试在 XPath 查询中使用此字符串变量 s,但出现错误 countByEnumeratingWithState:objects:count:] 请告诉我可以做什么。谢谢Raqeeb
    • 我对 xpath 不太熟悉。有益的是记录字符串的输出并确保它是按预期创建的。另外,什么对象在调用 countByEnumeratingWithState:objects:count 消息?
    【解决方案2】:

    如何使用这个 xpath:

    //Library[@name='Engineering Library']/Hours/TermOrHolidays
    

    或者这个:

    //Library[LibraryName='Engineering Library']/Hours/TermOrHolidays
    

    【讨论】:

    • 谢谢 jenningj....但我需要自己使用变量而不是实际值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多