如何获取具有特定元素值的节点
有人请告诉我如何使用 XPath查询中的文本函数。 我需要希尔曼库存在的信息中的XML如何获取具有特定元素值的节点
http://www.sis.pitt.edu/~arazeez/Librarydata.xml
resultNodes = [rssParser nodesForXPath:@"//Library[1]/Hours/TermOrHolidays" error:nil];.
现在我使用的[1]。但我想使用文字功能
NSString *libName = @"Hillman Library";
resultNodes = [rssParser nodesForXPath:@"//Library[LibraryName/text() = libName]/Hours/TermOrHolidays" error:nil];
但是这并不奏效。有人可以让我知道我是如何去做这件事的。
由于
But I wanted to use the text function
NSString *libName = @"Hillman Library"; resultNodes = [rssParser nodesForXPath:@"//Library[LibraryName/text() = libName]/Hours/TermOrHolidays" error:nil];
But this is not working out
的问题是,:
//Library[LibraryName/text() = libName]/Hours/TermOrHolidays
选择文档的文本的子节点中的一个在所有Library
元件,其是等于所述一个libName
同样的孩子Library
。
引用的XML文档中的Library
元素没有任何libName
子元素,这就是上述XPath表达式不选择任何内容的原因。
你想:
//Library[LibraryName/text() = 'Hillman Library']/Hours/TermOrHolidays
或
//Library[LibraryName/text() = "Hillman Library"]/Hours/TermOrHolidays
无论引号或撇号都可以使用。
在XPath表达式中,通过用引号或撇号包围它来指定字符串。 XPath不理解其托管语言的变量。
啊..感谢那个Dimitre ......它解决了。 就像你说的XPath不理解其托管语言的变量。所以我可以连接并形成一个XPath查询然后使用它。
我是新来的C-目标,还在挣扎与简单的概念enter code here
我尝试过使用这个,但徒劳无功。得到一些错误。 NSString * string1 = @“// LibraryName [text()='”; \t NSString * string2 = @“']/../小时/ TermOrHolidays“; \t的NSString * newString; \t的NSString * newString1; \t newString = [字符串1 stringByAppendingString:LIBNAME]; \t newString1 = [newString stringByAppendingString:字符串2]; \t的NSLog(newString1); \t//更正下面的一个: \t // resultNodes = [rssParser nodesForXPath:@“// LibraryName [text()='Engineering Library'] /../ Hours/TermOrHolidays”error:nil]; resultNodes = [rssParser nodeForXPath:newString1误差:无]; – 2010-06-27 10:10:09
嗨,阿卜杜勒。欢迎来到SO。突出显示代码并按下ctrl-k以正确格式化。 – bernie 2010-06-27 00:50:39