こんにちは。野方です。 (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: noga...@gmail.com - web: http://www.nofuture.tv/diary/ -- Unsubscribe instructions: E-mail to users+unsubscr...@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