こんにちは。野方です。
(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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.