こんにちは。野方です。
(2014年06月21日 07:25), matuaki wrote:
matuakiです。
このサービスが出しているXMLをFILTERXML関数が理解できていないみたいです。
=WEBSERVICE("http://www.finds.jp/ws/geocode.php?mcode=27127")
で取得したXMLで
<geocode xmlns="http://finds.jp/ts"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
の部分を
<geocode>
に変更するとFILTERXML関数は値を読み込みました。
(式は=FILTERXML(A1,"//geocode/result/latitude")に変えましたが)
おお!ホントですね!
普通に上からたどっていっても、きちんと緯度が取り出せました。
XML名前空間(xmlns)が怪しそうというので、一つずつ消してみたところ
「xmlns="http://finds.jp/ts"」が入ってるとパースできないようです。
もしかして、名前空間は指定してあるけど、そこにスキーマがないから、
それに従って処理できない?
この現象が、XMLを出している側の問題かCalcの関数の方に問題があるのか、わ
たしはよく分かりません。
「XML名前空間を指定していると、それにしたがって処理しようとするので、元
のXMLの指定が間違ってるとコケる」と仮説を立ててみたのですが、合ってるか
どうかは改めてdiscussで尋ねたほうがいいかもですね。
ありがとうございます。
(2014年06月21日 07:25), matuaki wrote:
matuakiです。
このサービスが出しているXMLをFILTERXML関数が理解できていないみたいです。
=WEBSERVICE("http://www.finds.jp/ws/geocode.php?mcode=27127")
で取得したXMLで
<geocode xmlns="http://finds.jp/ts"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
の部分を
<geocode>
に変更するとFILTERXML関数は値を読み込みました。
(式は=FILTERXML(A1,"//geocode/result/latitude")に変えましたが)
この現象が、XMLを出している側の問題かCalcの関数の方に問題があるのか、わ
たしはよく分かりません。
参考までに。
(2014年06月20日 19:10), Jun NOGATA wrote:
こんにちは。野方です。
LibreOffice 4.2から入ったCalcのWEBSERVICE関数を使って、Web APIにアクセ
スして、返ってきたXMLからFILTERXML関数を使って値を取り出そうとしていま
すが、うまく取り出すことができません。
使っているWeb APIは、こちらです。
- 簡易ジオコーディングサービス / Finds.jp Webサービス:
http://www.finds.jp/wsdocs/geocode/
市町村コードを指定してアクセスすると緯度経度がXMLで返ってきます。
大阪市北区(27127)なら、こんな感じでアクセスすると緯度経度が返ってきます。
- http://www.finds.jp/ws/geocode.php?mcode=27127
試しにA1セルとA2セルに
A1セル =WEBSERVICE("http://www.finds.jp/ws/geocode.php?mcode=27127")
A2セル =FILTERXML(A1,"//latitude")
と書いて試しましたが、#VALUEエラーになってしまいます。
XPathをあまり理解していないので書き方が悪いのかと思い、Livedoorのお天気
RSSを使って試したところ
- http://weather.livedoor.com/forecast/rss/area/270000.xml
A1セル
=WEBSERVICE("http://weather.livedoor.com/forecast/rss/area/270000.xml")
A2セル =FILTERXML(A1,"//item[3]/title")
こちらは、うまくtitle要素の値を取り出すことができました。
ちょっと、よくわからなくなってきたのですが、FILTERXMLのXpathをどういう
風な書き方をすると値を取り出すことができるのでしょうか。
「これを見ろー」でもいいので、なにか情報ありましたら教えてください。
--
野方 純 (NOGATA,Jun) - mail: nogajun@gmail.com
- web: http://www.nofuture.tv/diary/
--
Unsubscribe instructions: E-mail to
users+unsubscribe@ja.libreoffice.org
Posting guidelines + more:
http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be
deleted