0

使用 XPATH Fetch 页面,我在获取 html 表后设法得到了这个输出

0
content $59,00
1
content $61,00
2
content $1.873,25
3
content $2.460,70
4
content US$1,49

我想对这个值做一些数学运算,比如(假设 [#] 是元素索引):

{ [3] + 50 / ([0] + [1])/2) } 

或者

{ [4] + 50 / ([0] + [1])/2) }

我不关心项目[4]。

我想我必须首先以某种方式删除货币符号,然后找到一种方法将这些值解析到简单的数学模块中。有什么线索吗?

一些背景:我过去(几年前)尝试过管道,但那只是组合提要,没有做任何数学运算。今天我回到管道,因为我发现了 XPATH Fetch 模块,它看起来很有趣,但被这个看似简单的练习卡住了。

这是管道的链接,所以你可以看到我在哪里(线索:不是很远......): http ://pipes.yahoo.com/pipes/pipe.info?_id=06780ca250e5b107b7c1ef52455996ff

4

1 回答 1

0

我不确定我是否理解这个问题 - 您是否有大量值,每个值之前都有一个元素索引(从 0 到 4)?还是您总是只有 10 行,但 $ 值每次都在变化?

我将假设后一种情况 - 即每个 HTML 文件获取一次此表,现在想从中获取一个数字。

我会使用这样的东西:

... | tr -d '.$' | tr ',\n' '. ' | sed 's/content/c/g' | sed 's/0 c \(.*\) 1 c \(.*\) 2 c \(.*\) 3 c \(.*\) 4 c \(.*\)/\4 + 50\/(\1 + \2)\n/' | bc -l

解释:

  • 首先删除'$'符号和'.' 使用 `tr -d'
  • 然后将“,”转换为点“。”,并删除换行符(使所有内容成为单行)
  • 然后我将“内容”缩短为“c”,只是为了使下一部分更短
  • sed用来分割字段并用值编写数学表达式
  • 注意 -cut如果我添加了“+/()”符号,我也可以使用
  • 最后,我将生成的表达式通过管道传递给bc. 也可以用python,但我喜欢bc
于 2013-07-18T17:09:05.410 回答