我使用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/