WebServiceアダプタで取得したデータをHTMLで表示させたい

Avatar
kan3
WebServiceアダプタであるサイトからデータを取得しHTMLで画面を作成するため、HTMLアダプタで生成していますが、HTMLアダプタにWebサービスから取得したデータが渡りません。ログを見ると、WebServiceアダプタからは問題なくデータ取得されているようですが、HTMLアダプタでHTML生成時にうまく取得できないようです。やり方等ご存知の方教えて下さい。

この記事は役に立ちましたか?

0が役に立ったといっています

コメント

  • Avatar
    kzm00
    コメントアクション Permalink
    kan3様

    WebServiceアダプタから取得したデータはどのようなものでしょうか?

    あと、HTML生成時にうまく取得できないということですが、Velocityテンプレート内でということですよね?であれば、Velocityテンプレートもあわせて記述していただけると、何かコメントできるかもしれません。

    よろしくお願いします。
    0
  • Avatar
    kan3
    コメントアクション Permalink
    回答ありがとうございます。Webサービスから取得したデータは以下のようになっています。
    (XXXXにデータが入っています。


    ■WebServie処理で取得したデータです


    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <FromZipCode xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
      <FromZipCodeResult xmlns="http://btonic.est.co.jp/zipcode/">true</FromZipCodeResult>
      <SearchResult xmlns="http://btonic.est.co.jp/zipcode/">
        <IsSuccess>true</IsSuccess>
        <FindCount>1</FindCount>
        <TotalFindCount>1</TotalFindCount>
        <ErrorMessage/>
        <Item>
          <FindItem05>
            <OldZipCode>XXXX</OldZipCode>
            <ZipCode>XXXX</ZipCode>
            <Yomi1>XXXX</Yomi1>
            <Yomi2>XXXX</Yomi2>
            <Yomi3>XXXX</Yomi3>
            <Yomi4/>
            <Kanji1>XXXX</Kanji1>
            <Kanji2>XXXX</Kanji2>
            <Kanji3>XXXX</Kanji3>
            <Kanji4/>
            <JigyosyoName/>
            <JigyosyoYomi/>
            <OtherValues>001000</OtherValues>
            <JigyosyoOtherValues/>
            <ZenkokuChihoukoukyouDantaiCode>13105</ZenkokuChihoukoukyouDantaiCode>
            <JigyosyoAreaJIS/>
            <JigyosyoToriatukai/>
          </FindItem05>
        </Item>
      </SearchResult>
    </FromZipCode>


    上記のXMLデータを読み取りとして、HTMLアダプタで以下のようにHTMLデータを生成しております。






    ■以下のようにHTMLデータ生成をしています



    <table>
    <tr>
     
    項目名・・・・


    </tr>
    <!-- xml_read による繰り返し処理 : 開始 -->
    #foreach( $item in $component.xml_read.getChild("SearchResult").getChild("Item").getChildren("FindItem05") )
    <tr>
      <td> $item.getChild("OldZipCode").getText() </td>
      <td> $item.getChild("ZipCode").getText() </td>
      <td> $item.getChild("Yomi1").getText() </td>
      <td> $item.getChild("Yomi2").getText() </td>
      <td> $item.getChild("Yomi3").getText() </td>
      <td> $item.getChild("Yomi4").getText() </td>
      <td> $item.getChild("Kanji1").getText() </td>
      <td> $item.getChild("Kanji2").getText() </td>
      <td> $item.getChild("Kanji3").getText() </td>
      <td> $item.getChild("Kanji4").getText() </td>
      <td> $item.getChild("JigyosyoName").getText() </td>
      <td> $item.getChild("JigyosyoYomi").getText() </td>
      <td> $item.getChild("OtherValues").getText() </td>
      <td> $item.getChild("JigyosyoOtherValues").getText() </td>
      <td> $item.getChild("ZenkokuChihoukoukyouDantaiCode").getText() </td>
      <td> $item.getChild("JigyosyoAreaJIS").getText() </td>
      <td> $item.getChild("JigyosyoToriatukai").getText() </td>
    </tr>
    #end
    <!-- xml_read による繰り返し処理 : 終了 -->


    HTMLデータ生成処理に値が渡っていない感じです。
    何か分かりましたら教えて下さい、宜しくお願いします。
    0
  • Avatar
    enk
    コメントアクション Permalink
    kan3様


    今回Webサービスから取得したデータには名前空間が指定されているため、
    要素の取得(getChild()やgetChildren())に際して、名前空間を指定する必要があると思います。


    具体的には、このような感じで取得できるようになるのではないでしょうか。


    <!-- xml_read による繰り返し処理 : 開始 -->
    #set ($ns =  $component.xml_read.rootElement.namespace) ## ★ルートの名前空間を取得する
    ## ★ルート以下すべてのgetChild()とgetChildren()の第二引数に取得した名前空間を指定する
    #foreach( $item in  $component.xml_read.getChild("SearchResult", $ns).getChild("Item", $ns).getChildren("FindItem05", $ns) )<tr>
    <tr>
      <td> $item.getChild("OldZipCode", $ns).getText() </td>
      <td> $item.getChild("ZipCode", $ns).getText() </td>
      <td> $item.getChild("Yomi1", $ns).getText() </td>
      <td> $item.getChild("Yomi2", $ns).getText() </td>
      <td> $item.getChild("Yomi3", $ns).getText() </td>
      <td> $item.getChild("Yomi4", $ns).getText() </td>
      <td> $item.getChild("Kanji1", $ns).getText() </td>
      <td> $item.getChild("Kanji2", $ns).getText() </td>
      <td> $item.getChild("Kanji3", $ns).getText() </td>
      <td> $item.getChild("Kanji4", $ns).getText() </td>
      <td> $item.getChild("JigyosyoName", $ns).getText() </td>
      <td> $item.getChild("JigyosyoYomi", $ns).getText() </td>
      <td> $item.getChild("OtherValues", $ns).getText() </td>
      <td> $item.getChild("JigyosyoOtherValues", $ns).getText() </td>
      <td> $item.getChild("ZenkokuChihoukoukyouDantaiCode", $ns).getText() </td>
      <td> $item.getChild("JigyosyoAreaJIS", $ns).getText() </td>
      <td> $item.getChild("JigyosyoToriatukai", $ns).getText() </td>
    </tr>
    #end
    <!-- xml_read による繰り返し処理 : 終了 -->
    0
  • Avatar
    kan3
    コメントアクション Permalink
    enk様

    ご回答ありがとうございます。
    教えて頂いた内容でWebServiceからデータ取得する事が出来ました。
    ありがとうございます。
    0

ログインしてコメントを残してください。