0

ImportXML()Google スプレッドシートで関数を使用できません。スプレッドシートで複数の Reddit 投稿に投稿した時刻を取得したいのですが、2012-04-28T02:19:06.348481+00:00 ではなく、2012 年 4 月 28 日を取得できたのは幸運でした。お気に入り。

たとえば、この Web ページでソースを調べると、次のように表示されます。

<div class='spacer'><div class="linkinfo">
    <div class="date">
        <span>this post was submitted on &#32;</span>
            <time datetime="2012-04-28T02:19:06.348481+00:00">28 Apr 2012</time>
    </div>
<div class="score">

ただし、これは私が何かをすることができる唯一の行です:

=ImportXML(
"http://www.reddit.com/r/BuyItForLife/comments/jtjuz/bi4l_mission_statement_rules_etc/",
"//div[@class='date']")

助言がありますか?私は検索して試して検索して試してみましたが、何も機能していません。

4

2 に答える 2

3

IMPORTXML が正しく機能するには、ドキュメントが XML/XHTML に従っている必要があります。ドキュメントがこれに準拠していないように見えるため、IMPORTXML の代わりに IMPORTDATA を使用し、次に QUERY と REGEXEXTRACT を使用します。

例:

A1: URL を http://www.reddit.com/r/BuyItForLife/comments/jtjuz/bi4l_mission_statement_rules_etc/
追加 A2: 次の式を追加

=REGEXEXTRACT(QUERY(transpose(QUERY(importdata(A1),,1E+100)),,1E+100),
"datetime=""(.*?)""")

結果:2011-08-25T01:32:23+00:00

QUERY の使用に関する説明:

IMPORTDATA は 2D 配列を返します。QUERY は、配列の内容を連結するために 2 回使用されます。1 回目はすべての行を結合し、2 回目はすべての列に対して同じことを行います。

CONCATENATE と JOIN は、50000 文字の制限があるため使用できません。

于 2016-05-26T06:15:45.490 に答える
-3

あなたは難しい質問をしましたが、おそらく Google スプレッドシートの限界に達したでしょう - 通常、次のような Xpath 属性の有効性を確認できます:

//*[@datetime="2011-08-25T01:45:37+00:00"]

回答セルの結果は

TRUE

サンドボックスの行 21 のサンプルを参照してください:

//div/@class="md"   TRUE
于 2015-10-31T15:21:55.777 に答える