我有一个包含多个输入节点的XML文件:
<entry>
<published>2013-12-19T13:30:20-05:00</published>
<title>This is a title</title>
<content type="html">This is the content</content>
<author>
<name>Valentina</name>
</author>
</entry>
我正在尝试使用XPath解析它(用于学习目的),但我似乎无法使其工作。我有以下代码:
NSData* xmlData = [[NSMutableData alloc] initWithContentsOfURL:[NSURL URLWithString:link]];
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:nil];
NSArray* entries = [document.rootElement elementsForName:@"entry"];
for(GDataXMLElement* element in entries)
{
published = [element nodesForXPath:@"/entry/published" error:nil][0];
}
尝试获取index 0 beyond bounds for empty array
节点文本时,我总是遇到published
错误。我尝试了不同的东西,但无法弄清楚究竟是什么方法
条目数组包含10个条目节点。
答案 0 :(得分:1)
从当前上下文(已经是<entry/>
元素)计算XPath。将XPath表达式更改为./published
或甚至只更改published
。
published = [element nodesForXPath:@"published" error:nil][0];
但是,如果您只想查询子节点,为什么要使用XPath呢?
published = [element elementsForName:@"published"][0];