【发布时间】:2014-04-23 15:05:23
【问题描述】:
我正在尝试从 this website. 获取数据表并将其作为 JSON 提供。
我正在使用 Yahoo Pipes/XPath 迈出第一步,所以提前为菜鸟 Qs 道歉。
我有 a pipe,它只使用 XPath 表达式:
//table1/tbody/tr
这给了我以下JSON output(sn-p,大约 30 个项目中的 1 个):
"items": [{
"td": [{
"a": {
"href": "http:\/\/www.hydro.com.au\/system\/files\/water-storage\/Web_Lakes_AUGUSTA.pdf",
"content": "Lake Augusta"
}
},
{
"p": "2.58"
},
{
"p": "Steady"
}],
"description": null,
"title": null
},
我最终想要的是一个扁平化的版本,如下所示:
"items": [{
{
"href": "http:\/\/www.hydro.com.au\/system\/files\/water-storage\/Web_Lakes_AUGUSTA.pdf",
},
{
"content": "Lake Augusta"
},
{
"p": "2.58"
},
{
"p": "Steady"
}],
},
有人可以帮助我实现这一目标吗?我应该使用原始 XPath 做更多事情,还是 Pipes 中有一个特定的处理器可以帮助我完成这个?
【问题讨论】:
-
XPath 结果反映了原始文档结构。很难选择一组不完全分离但不反映文档结构(即像您想要的输出)的节点。我建议您提取 XPath 为您提供的 JSON/JS 对象数组,然后在客户端中对其进行按摩,直到它满足您的需要。我相信您也可以在 Pipes 本身中对其进行后处理,但仅使用 XPath 是行不通的。
-
您可能还想尝试Kimono,他们在网站设计方面领先于 Yahoo Pipes。
-
为了好玩,这里是你的管道的一个克隆,它向你展示了如何构建你想要的输出:pipes.yahoo.com/pipes/…
-
哇。和服看起来很棒,你的烟斗就是答案!请把你的 cmets 变成一个答案,这样我就可以给你信用。谢谢!
-
在 Kimono 中设置工作提要比构建 Yahoo 管道花费的时间更少,但 Pipes 在处理和组合数据方面仍然很多更加灵活和强大,尤其是在不像这个那样直接的情况下。
标签: json yahoo-pipes