有人可以告诉我我们如何使用文本功能 XPath查询。 我需要在xml中提供Hillman Library的信息
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];
但这没有成功。有人可以让我知道我是怎么回事 这样做。
由于
答案 0 :(得分:2)
但我想使用文字功能
NSString *libName = @"Hillman Library"; resultNodes = [rssParser nodesForXPath:@"//Library[LibraryName/text() = libName]/Hours/TermOrHolidays" error:nil];
但这没有成功
问题在于:
//Library[LibraryName/text() = libName]/Hours/TermOrHolidays
选择文档中的所有Library
元素,其中一个文本节点子元素等于同一个libName
的{{1}}子元素之一。
引用的XML文档中的Library
元素没有任何Library
子元素,这就是上述XPath表达式不选择任何内容的原因。
你想要:
libName
或
//Library[LibraryName/text() = 'Hillman Library']/Hours/TermOrHolidays
可以使用引号或撇号。
在XPath表达式中,通过用引号或撇号包围字符串来指定字符串。 XPath不了解其托管语言的变量。
答案 1 :(得分:0)
啊..谢谢那个Dimitre ......结果很好。 就像你说XPath不理解其托管语言的变量。所以我可以连接并形成一个XPath查询然后使用它。
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];
我是C-objective的新手,仍在努力处理简单的概念enter code here