[ja-users] Calc: FILTERXML関数を使って値を取り出すには?

2014-06-20 スレッド表示 Jun NOGATA
こんにちは。野方です。

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/27.xml

A1セル =WEBSERVICE(http://weather.livedoor.com/forecast/rss/area/27.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



Re: [ja-users] Calc: FILTERXML関数を使って値を取り出すには?

2014-06-20 スレッド表示 matuaki
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/27.xml
 
 A1セル =WEBSERVICE(http://weather.livedoor.com/forecast/rss/area/27.xml;)
 A2セル =FILTERXML(A1,//item[3]/title)
 
 こちらは、うまくtitle要素の値を取り出すことができました。
 
 ちょっと、よくわからなくなってきたのですが、FILTERXMLのXpathをどういう
 風な書き方をすると値を取り出すことができるのでしょうか。
 「これを見ろー」でもいいので、なにか情報ありましたら教えてください。
 


-- 
-
matuaki
matuaki_at_ma-office.org
http://openoffice.sblo.jp/

-- 
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



Re: [ja-users] Calc: FILTERXML関数を使って値を取り出すには?

2014-06-20 スレッド表示 Jun NOGATA
こんにちは。野方です。

(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/27.xml

 A1セル =WEBSERVICE(http://weather.livedoor.com/forecast/rss/area/27.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



[ja-users] Re: [ja-users] Calc: FILTERXML関数を使って値を取り出すには?

2014-06-20 スレッド表示 Eizi TOYODA
filterxml
は使ったことがありませんが、症状からすると、名前空間を指定していない要素がXpathにあっても、ドキュメントの同名の要素とは別物扱いされているように思います。

FILTERXML(A1,//*[name()='latitude'])

等としたら結果が返りませんかね。

豊田英司
from android phone
2014/06/21 9:20 Jun NOGATA noga...@gmail.com:

 こんにちは。野方です。

 (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/27.xml
 
  A1セル =WEBSERVICE(
 http://weather.livedoor.com/forecast/rss/area/27.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



-- 
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