gpt4 book ai didi

objective-c - 使用 parekit 进行简单的标记解析

转载 作者:行者123 更新时间:2023-11-29 11:05:42 24 4
gpt4 key购买 nike

我正在尝试解析一小部分 HTML 标记。

PKSequence *parrser = [PKSequence sequence];
[parrser add:[PKSymbol symbolWithString:@"<title>"]];
PKWord *word = [PKWord word];
[word setAssembler:self selector:@selector(workOnWordAssembly:)];
[parrser add:word];
[parrser add:[PKSymbol symbolWithString:@"</title>"]];

PKAssembly *result = [parrser bestMatchFor:[PKTokenAssembly assemblyWithString:@"<title>teeest</title>"]];


-(void)workOnWordAssembly:(PKAssembly *)a {
NSLog(@"We entered this");
}

但是 workOnWordAssembly 没有被调用。

最佳答案

ParseKit 的开发者|这里。确保您使用的是 head of trunk on google code .

  1. 汇编程序回调 now have two arguments .
  2. 默认情况下,字符串 <title>不会被标记为单个 Symbol 标记。那将是一个 < Symbol token,一个title字 token 和一个>符号标记。但是,您可以配置该行为。

请阅读 ParseKit 上的文档,特别是 tokenization docs了解 ParseKit 中的标记化是如何工作的。


以下是完成上述基本任务所缺少的内容。但是,我不确定这是完成现实世界任务的最佳方法。我认为阅读上述文档将有助于解释这一点。

PKTokenizer *t = [PKTokenizer tokenizerWithString:@"<title>foobar</title>"];
[t.symbolState add:@"<title>"];
[t.symbolState add:@"</title>"];

PKAssembly *a = [PKTokenAssembly assemblyWithTokenizer:t];

PKSequence *p = [PKSequence sequence];

[p add:[PKSymbol symbolWithString:@"<title>"]];

PKWord *word = [PKWord word];
[word setAssembler:self selector:@selector(parser:didMatchWord:)];
[p add:word];

[p add:[PKSymbol symbolWithString:@"</title>"]];

PKAssembly *result = [p bestMatchFor:a];

-(void)parser:(PKParser *)p didMatchWord:(PKAssembly *)a {
NSLog(@"%s %@", __PRETTY_FUNCTION__, a);
}

关于objective-c - 使用 parekit 进行简单的标记解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com