OStack程序员社区-中国程序员成长平台

标题: ios - 仅从 NSXMLElement 获取文本值,没有子节点的文本 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 13:23
标题: ios - 仅从 NSXMLElement 获取文本值,没有子节点的文本

我使用 KissXML,它是 NSXMLDocument 等的替代品。 这是我的 NSXMLElement 的内容:

<ar>
    <k>baker</k>
    <tr>ˈbeɪkə</tr>
    baker пекарь, булочник
</ar>

我想获取 NSXMLElement Node 的文本值,而不需要所有子节点的文本。所以,它应该只返回:

baker пекарь, булочник

这不起作用:

_articleText = [xmlElement stringValue];

它返回所有内容,包括 tr 和 k 子节点的文本。

附: 我使用 XPath 得到了这个 ar 节点,我正在寻找 XPath 解决方案,我不想删除子字符串。

NSArray *array = [self.xmlDocument nodesForXPath"/xdxf/ar" error:&error];



Best Answer-推荐答案


假设 'array' 只包含一个元素,那么 's' 将包含感兴趣的字符串:

NSArray *array = [self.xmlDocument nodesForXPath"/xdxf/ar" error:&error];
if([array count] > 0) { 
    NSArray *childrenOfAr = [array[0] children];    
    for(NSXMLNode *n in childrenOfAr) {
        if([n kind] == NSXMLTextKind) {
             NSString *s = [n stringValue];
        }
    }
}

更快的方法是在 Xpath 查询中查找 text():

NSArray *array = [self.xmlDocument nodesForXPath"/xdxf/ar/text()" error:&error];
if([array count] > 0) { 
    NSString *s = [array[0] stringValue]; 
}

关于ios - 仅从 NSXMLElement 获取文本值,没有子节点的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119775/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4