使用xpath时如何获取CXMLElement

发布于 2024-09-30 16:03:51 字数 215 浏览 1 评论 0原文

当 xpath 查询文档时,有没有办法获取 CXMLElement- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; 返回的 XCMLNode 项不包含属性函数。

有没有办法直接获取元素或将节点转换为元素?

谢谢

Is there a way to get a CXMLElement back when xpath querying a document? The XCMLNode item returned by the - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; doesn't contain the attributes functions.

Is there a way to either directly get an element or convert the node to an element?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情魔剑神 2024-10-07 16:03:51

您可以强制转换它,但请务必先检查类型:

for (CXMLNode *node in nodeArray)
{
    if ([node kind] == CXMLElementKind)
    {
        CXMLElement *element = (CXMLElement *)node;

        // do stuff with element
    }
}

You can cast it, but be sure to check the type first:

for (CXMLNode *node in nodeArray)
{
    if ([node kind] == CXMLElementKind)
    {
        CXMLElement *element = (CXMLElement *)node;

        // do stuff with element
    }
}
请爱~陌生人 2024-10-07 16:03:51

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) {
...
}

AFAIR CXMLElement is a subclass of the CXMLNode. If you are sure that the xpath will return CXMLElements, then just cast CXMLNode to CXMLElement. In other case you should check node type and then cast.

From touchXML documention:

NSArray *nodes = NULL;
//  searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];

for (CXMLElement *node in nodes) {
...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文