3

=ImportXML を使用して、Google Doc 内で Alexa ランキングを解析しようとしています。以下は動作し、グローバル ランクを表示します。

=value(ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"//@rank[1]"))

理論的には、国ランキングが存在する場合、次のように表示する必要があります: (これは機能しません)

=ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"//@rank[2]")

上記は機能していない部分です。2 番目の「ランク」属性の値を取得していません。

私も試しました:(動作しません)

=ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"/country/@rank")

ヘルプ?私は何を間違っていますか?

4

2 に答える 2

1

2 番目の XPath クエリは機能しない可能性があります。要素の 2 番目の属性をクエリしようとしていますが、@rank1 つしかない可能性があります。@rankドキュメント全体で2 番目の属性を選択する場合は、 を使用します(//@rank)[2]

countryルート要素ではないため、代替クエリは機能しません。//country/@rank代わりに使用してください。間違った要素/属性を取得するのを防ぐために、完全なパスを段階的に提供するのが合理的かもしれません (ドキュメント内の別の場所で発生した場合)。

/alexa/sd/country/@rank

Google スプレッドシートでは大文字と小文字が区別されないようですが、主に XPath では大文字と小文字が区別されることに注意してください。XML 入力と同様に、ここではすべて大文字を使用することをお勧めします。

于 2014-01-24T10:29:48.453 に答える
0

試行錯誤の結果、2014 年 2 月 17 日時点で正確な次の解決策にたどり着きました。

=ImportXML(CONCAT("http://data.alexa.com/data?cli=10&url=", "www.google.com"), "number(//COUNTRY[@code='US']/@rank)")

所見:

  • タグは大文字と小文字を区別するようです
  • 属性は小文字でなければなりません
于 2014-02-17T13:35:48.353 に答える