gpt4 book ai didi

KRL 和雅虎本地搜索

转载 作者:行者123 更新时间:2023-12-04 22:04:14 27 4
gpt4 key购买 nike

我正在尝试在 Kynetx 应用程序中使用 Yahoo Local Search。

ruleset avogadro {
meta {
name "yahoo-local-ruleset"
description "use results from Yahoo local search"
author "randall bohn"
key yahoo_local "get-your-own-key"
}
dispatch { domain "example.com"}
global {
datasource local:XML <- "http://local.yahooapis.com/LocalSearchService/V3/localsearch";
}

rule add_list {
select when pageview ".*" setting ()
pre {
ds = datasource:local("?appid=#{keys:yahoo_local()}&query=pizza&zip=#{zip}&results=5");
rs = ds.pick("$..Result");
}
append("body","<ul id='my_list'></ul>");
always {
set ent:pizza rs;
}
}

rule add_results {
select when pageview ".*" setting ()
foreach ent:pizza setting pizza
pre {
title = pizza.pick("$..Title");
}
append("#my_list", "<li>#{title}</li>");
}
}

我得到的 list 是

. [object Object]

和'title'有

{'$t' => 'Pizza Shop 1'}

我不知道如何只获得标题。看起来原始 XML 文件中的“文本内容”变成了 {'$t' => '文本内容'} 并且 '$t' 给 pick() 带来了问题。

最佳答案

当 XML 数据源和数据集转换为 JSON 时,XML 节点中的文本值将分配给 $t。您可以通过将预 block 中的选择语句更改为

来选择标题的文本
title = pizza.pick("$..Title.$t");

尝试一下,看看是否能解决您的问题。


与您要考虑的问题无关的事项的旁注:

1) 感谢您分享整个规则集、您遇到的问题以及您的预期。让回答您的问题变得更加容易。

2) 不应更改 AppBuilder 或命令行 gem 为您生成的规则集标识符。您当前的标识符

ruleset avogadro {

应该看起来更像

规则集 a60x304 {

3) 你不需要

setting ()

在 select 语句中,除非你的正则表达式中有捕获组

关于KRL 和雅虎本地搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532801/

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