- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 NSScanner 是一个 NSArray 枚举循环。然而这失败了:
-[NSXMLElement length]: unrecognized selector sent to instance 0x280da30
不,我不会在任何地方调用length
。看起来 find 的值在扫描器完成之前发生了变化,因此将其设为空白,从而导致 length
错误。
如果我删除循环并对字符串进行硬编码(我不希望这样,这只是一个测试),下面的代码就可以工作。 (当然不包括枚举)
它永远不会调用 NSLog
......
这是我的代码:
for (NSString*found in arr)
{
NSLog(@"Found %@",found);
NSString*search = [NSString stringWithString:found];
NSString *separatorString = @"\"";
NSString *container = nil;
NSScanner *aScanner = [NSScanner scannerWithString:search];
[aScanner setScanLocation:0];
[aScanner scanUpToString:@"src=\"" intoString:nil];
[aScanner scanString:@"src=\"" intoString:nil];
[aScanner scanUpToString:separatorString intoString:&container];
NSLog(@"scanned");
NSLog(@"%@",container);
NSImage*previewImage = [[NSImage alloc] initWithContentsOfFile:[relativeDir stringByAppendingPathComponent:container]];
[preview setImage:previewImage];
[previewImage release];
progressed = progressed + 1;
[convertProgress setDoubleValue:[convertProgress doubleValue] + progressed];
}
我怎样才能让它发挥作用?
编辑:
这是输入:
NSXMLDocument*doc = [[NSXMLDocument alloc] initWithData:[NSData dataWithContentsOfFile:webPath] options:NSXMLDocumentTidyHTML error:nil];
NSArray*arr = [doc nodesForXPath:@"//img[@src]" error:nil];
最佳答案
来自文档:
The
nodesForXPath:error:
method returns an array of NSXMLNode objects
您的数组未充满字符串。它充满了各种 NSXML*
对象。他们不是垃圾。这正是它应该如何工作的。
您可能没有调用 length
,但 stringWithString:
可能正在调用 length
来计算在新字符串中分配多少空间.
转换为字符串可能意味着很多事情。一个XML节点可能是一个独立的标签,也可能是一些内联的CDATA,也可能是具有各种属性的标签。同样,XML 文档是高度结构化的。在不应用一定结构含义的情况下,将文档内容作为标签/内容的直接枚举来浏览是没有意义的。
您可能需要递归或以其他方式遍历标签并适本地解释其内容。
第一步是删除除初始 NSLog() 之外的所有内容,然后看看您得到了什么。然后弄清楚如何遍历节点树。然后找出如何正确解析它们。
关于objective-c - NSScanner 和数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831668/
我有一个 NSScanner 对象,它可以扫描 HTML 文档中的段落标签。扫描仪似乎在找到第一个结果时停止,但我需要数组中的所有结果。 如何改进我的代码以浏览整个文档? - (NSArray *)g
我在 NSTextView 中有以下字符串: Horus avenged his father Osiris 为此分配了两个标签,Horus 和 Osiris。我使用 NSScanner 扫描字符串中
我正在扫描 SVG 路径字符串,并使用 NSScanner 尝试将其分解为多个组件。当它运行时,虽然我得到了组件,但我没有得到“类型” 例如:“m 186.14021,456.15955 3.1971
我是 iOS 开发的新手。我正在尝试解析一个简单的 csv 文件,该文件由大约 10 行以逗号分隔。我正在使用下面的代码,但无法理解为什么 NSScanner 在解析字段(下面代码中的字段)时不会转到
我有一个用户名系统,类似于使用 @ 符号的推特。 我已将其设置为通过键入@username 向用户发送消息。这与 Twitter 中的提及基本相同。 到目前为止,我已经能够检测到@ 符号后面的文本,并
我正在尝试用一个空格替换某些文本中的所有多个空格。这应该是一项非常简单的任务,但是由于某种原因,它返回的结果与预期的不同。我已经阅读了 NSScanner 上的文档,它似乎无法正常工作! NSScan
我正在尝试解析具有如下格式的字符串: *date1: - band1.1 @ venue1.1. - band1.2 @ venue1.2. *date2: - band 2.1 @ venue2.1
我创建了一个 NSScanner 类别方法来显示仪器中的泄漏。 - (BOOL)scanBetweenPrefix:(NSString *)prefix andSuff
我尝试使用 NSScanner 是一个 NSArray 枚举循环。然而这失败了: -[NSXMLElement length]: unrecognized selector sent to insta
我正在尝试获取一篇文章的摘要并将其作为字符串下载。这对于某些文章非常有效,但维基百科网站不一致。因此 NSScanner 经常失败,而它对于其他文章却工作得很好。 这是我的 NSScanner 实现:
我正在使用 NSScanner 来解析以逗号和行分隔的数据。实现起来相当简单,但我遇到了一个非常简单的问题。我想扫描下一行,即使它是空的。我现在遇到的问题是,如果有空行,它将跳过它并读取下一行。然后我
要解析的两行字符串是: 00:02.0 VGA compatible controller [0300]: Intel Corporation 82945G/GZ Integrated Graphic
我需要确定一个字符串 (sourceString) 是否包含另一个字符串 (queryString),如果包含,偏移量是多少。 我猜 NSScanner 可能可以解决这个问题,但我不完全理解文档。 假
我正在使用 NSScanner 扫描字符串并从中提取 double 值。这是我尝试解决问题的沙盒代码 let string = "maxage=1234567890" let scanner2 = N
我一直在尝试使用以下代码过滤字符串: //the String with the original text NSString *unfilteredString = @"( A1 )"; //i
我正在构建一个简单的 HTML 到 NSAttributedString 的转换方法,但出于某种原因,NSScanner 类在找到标记后丢弃了一个空格。例如,如果 html 格式的字符串是 @"Thi
我正在使用 NSScanner 在大型 NSString 中查找单词数组,然后使用 html 标记突出显示它们。基本上我扫描到第一个词并在那个点插入一个标签。问题是 NSScanner 也在寻找单词的
我刚读过 Apple documentation对于 NSScanner。我正在尝试获取此字符串的整数: @"user logged (3 attempts)" 我找不到任何例子,如何在括号内扫描。有
我有一个字符串,可能包含也可能不包含 C++ 注释(多行和单行),并且我需要在能够使用该字符串之前删除这些注释。我当前的想法是使用 NSScanner 来做到这一点 - 找到打开和关闭多行注释的位置并
我有一个看起来像这样的字符串: #chat :hi there 我想将 : 中的所有文本扫描为字符串,因此它的结尾类似于 hi there 我已经尝试过 [[NSScanner scannerWith
我是一名优秀的程序员,十分优秀!