フリーの辞書検索サービス使ってみた

REST版の次の辞書サービスを使ってみた。http://www.btonic.com/ws/NetDicv09RestSpec.htm
検索と内容取得の2つのAPIからなっているのですが、とりあえず、検索のほうだけ簡単に紹介。
#内容取得のAPIを呼ぶときに検索結果のIDを使います。

  • DicItemTitleが検索された単語群なので、返ってきたXMLの列をDataGridに表示する。DataGridには、dataProvider="{dictRequest.lastResult.SearchDicItemResult.TitleList.DicItemTitle}"を指定する。
  • DicItemTitleのTitleのspanが単語の名前になるので、itemRendererにはを指定する


すごく端折った説明でごめんなさい。リクエストがあれば詳しく説明しますのでお気軽にコメントください。
以下は、ソースとリクエストで返ってくるXMLです。APIの詳細はリンク先でご確認を。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
  applicationComplete="init()">
  <mx:Script>
    <![CDATA[
      import mx.rpc.http.HTTPService;
      
      [Bindable]
      private var dictRequest:HTTPService = new HTTPService();

      private function init():void {
        search("call");
      }
      
      private function search(searchWord:String):void {
        var reqUrl:String = "http://btonic.est.co.jp/NetDic/NetDicV09.asmx/" +
                  "SearchDicItemLite?Dic=EJdict&Word=" + searchWord +
                  "&Scope=HEADWORD&Match=STARTWITH&Merge=AND&Prof=XHTML" +
                  "&PageSize=20&PageIndex=0";
        dictRequest.url = reqUrl;
        dictRequest.send();
     }
    ]]>
  </mx:Script>

  <mx:DataGrid
    dataProvider="{dictRequest.lastResult.SearchDicItemResult.TitleList.DicItemTitle}"
    height="200" width="300" x="10" y="10" showHeaders="false">
    <mx:columns>
      <mx:DataGridColumn>
        <mx:itemRenderer>
          <mx:Component>
            <mx:Label text="{data.Title.span}"/>
          </mx:Component>
        </mx:itemRenderer>
      </mx:DataGridColumn>
    </mx:columns>
  </mx:DataGrid>
  
</mx:WindowedApplication>
?xml version="1.0" encoding="utf-8"?>
<SearchDicItemResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://btonic.est.co.jp/NetDic/NetDicV09">
  <ErrorMessage />
  <TotalHitCount>25</TotalHitCount>
  <ItemCount>20</ItemCount>
  <TitleList>
    <DicItemTitle>
      <ItemID>005747</ItemID>
      <LocID />
      <Title>
        <span class="NetDicTitle" xmlns="">call</span>
      </Title>
    </DicItemTitle>
    <DicItemTitle>
      <ItemID>005748</ItemID>
      <LocID />
      <Title>
        <span class="NetDicTitle" xmlns="">calla</span>
      </Title>
    </DicItemTitle>

    (省略:DicItemTitleの列)

  </TitleList>
</SearchDicItemResult>