そこで、テストで、apiから http://clip.eventcast.jp/api/v1/Search?Prefecture=%E5%8D%83%E8%91%89%E7%9C%8C のxmlを呼び出して、Google spreadsheetにimportxml関数で読み込んでみたのですが、結果を見ると、xmlのデータの一部を読み込んでいないことがわかりました。https://docs.google.com/spreadsheet/ccc?key=0Aojk_zIECowMdEJ1bFU3WUF3MzVIZFpqaGlJTFhpcFE#gid=0 (列A 1行に数式があります。=importxml("http://clip.eventcast.jp/api/v1/Search?Prefecture=%E5%8D%83%E8%91%89%E7%9C%8C","//Items/Item") 上記spreadsheetが見えない場合は、https://docs.google.com/spreadsheet/pub?key=0Aojk_zIECowMdEJ1bFU3WUF3MzVIZFpqaGlJTFhpcFE&output=html をご高覧ください。
apiのxmlを見ると、<Location>
<Location Name="Address" Value="幕張メッセ"/>(以下略)だけ書式が他と違っています。
xmlにある情報をすべて取り込む数式、方法を教えていただけますか?
コメント(4件)
属性へのアクセスは//Location/@valueで可能でしたが一行にする方法が見つかりませんでした。
http://support.google.com/docs/bin/answer.py?hl=ja&answer=155184
//Location/@value とすると値を拾えるようですが、3行単位で拾ってくるようです。s列4行でやつてみました。この3行をそれぞれ列として拾ってくるようにするのは可能でしょうか?
<Location Name="Address" Value="市川商工会議所"/>の部分を一つの列で拾い、<Location Name="Lat" Value="35.71320733531782"/>は別の列で拾い、<Location Name="Lng" Value="139.9276041984558"/>はまたまた別の列で拾うという具合です。
どうぞ、よろしくお願いいたします。
というようにすれば列では拾えましたので例えば
Cell(O1)=importxml(http://clip.eventcast.jp/api/v1/Search?Prefecture=%E5%8D%83%E8%91%89%E7%9C%8C","//Location[@name='Address']/@value")
Cell(P1)=importxml(http://clip.eventcast.jp/api/v1/Search?Prefecture=%E5%8D%83%E8%91%89%E7%9C%8C","//Location[@name='Lat']/@value")
Cell(Q1)=importxml(http://clip.eventcast.jp/api/v1/Search?Prefecture=%E5%8D%83%E8%91%89%E7%9C%8C","//Location[@name='Lng']/@value")
のようにすれば近い感じになるとは思うのですが行が揃うか疑問です。
XPathの式で出来ればいいのですが私には解りませんでした。のでコメントにて失礼。
逃げとしてはどこかのサイトでLocationの部分を他の要素と同じように展開したファイルを作って、そのサイトからimportxmlした方が簡単かなぁと思ってました。
回答に荷かご記入いただけましたら、ポイントを差し上げることができますので・・・。
どうぞ、よろしく。