我使用KissXML,它是NSXMLDocument等的drop替换。
这是我的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];

最佳答案

假设“数组”仅包含一个元素,那么“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/

10-14 21:32
查看更多