我使用 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-推荐答案 strong>
假设 '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/
|