有没有办法在xpath查询文档时返回CXMLElement
?由- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;
返回的XCMLNode
项目不包含属性功能。如何在使用xpath时获取CXMLElement
有没有办法直接获取元素或将节点转换为元素?
由于
有没有办法在xpath查询文档时返回CXMLElement
?由- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;
返回的XCMLNode
项目不包含属性功能。如何在使用xpath时获取CXMLElement
有没有办法直接获取元素或将节点转换为元素?
由于
你可以丢,但一定要检查类型第一:
for (CXMLNode *node in nodeArray)
{
if ([node kind] == CXMLElementKind)
{
CXMLElement *element = (CXMLElement *)node;
// do stuff with element
}
}
AFAIR CXMLElement是CXMLNode的子类。如果您确定xpath将返回CXMLElements,那么只需将CXMLNode转换为CXMLElement。在其他情况下,您应该检查节点类型,然后进行投射。
从touchXML机制的文档:
NSArray *nodes = NULL;
// searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];
for (CXMLElement *node in nodes) {
...
}
其实我看了一个来源,并CXMLNode是在函数创建本身,所以它不是一个CXMLElement ... – sharvey 2010-11-03 20:22:27
https://github.com/schwa/TouchXML/blob/master/Documentation/TouchXMLParsing.markdown – Yuras 2010-11-03 20:23:31