1

以下のスクリプトを使用して、PDF から変換された HTML ファイルからデータを抽出しようとしました。

temp.html <- scan(file=filename,what="character")
pagetree <- htmlTreeParse(temp.html, error=function(...){}, useInternalNodes = TRUE)
tx.raw <- getNodeSet(pagetree,"//div")

リストを作成すると、そのtx.rawうちの 1 つが次のように表示されます。

tx[[170]]

[[170]]
<div style="position:absolute;top:985;left:748">
  <nobr>
    <span class="ft03"> 




971.72
 </span>
  </nobr>
</div> 

必要な情報は内部にありますspan(つまり971.72) が、データが入っている部分がpdf ファイルのどこにあるかを正確stylediv知らせる必要もあります。spanスタイル情報も抽出するにはどうすればよいですか? ありがとう。

4

1 に答える 1

0

私は単純な正規表現でそれを行います:

sub('.*style="([0-9a-z;:]*)".*', '\\1', t)

t対応するHTML部分をテキストとして保持する場所。


デモHTML部分に基づく長い例:

## loading your demo HTML part to one line
t <- paste(readLines(textConnection('<div style="position:absolute;top:985;left:748">
  <nobr>
    <span class="ft03">




971.72
 </span>
  </nobr>
</div>')), collapse = '')

## let us extract some parts!
library(XML)
t.html <- htmlTreeParse(t, useInternalNodes = TRUE)
t.val <- xpathApply(t.html, '//div', xmlValue)
t.val <- gsub('\\s', '', t.val)
t.style <- sub('.*style="([0-9a-z;:]*)".*', '\\1', t)

以前にHTMLを解析する方法によっては、上記の行のほとんどを削除できます-もちろん。

結果:

> t.val
[1] "971.72"
> t.style
[1] "position:absolute;top:985;left:748"

抽出topし、同様に対処することができますが、たとえば、が静的な文字列であるleftかどうかわからないため、私はそれを扱っていません。lefttop

于 2012-04-28T08:13:31.503 に答える