XML+XSL(2)
 
XMLデータの書き方
 

1 XMLの宣言

  まず,XMLであることの宣言が必要だが,毎回同じなので,こんなものと思っていればよい。
  <?xml version="1.0" encoding="UTF-8"?>

2 要素と属性

  <data>データ</data>
  このようにデータはタグに囲まれる。必ず最後に</要素名>と終了タグが必要。
  データがない場合は,<data></data>の代わりに<data/>とだけ書くことができる。
  
  タグの名前(ここではdata)を要素という。data要素などという。
  
  要素には属性が含まれる場合がある。
  <data name="arata">データ</data>
  このnameはdataの属性である。属性は複数可能。

3 データ構造

  要素は階層的な構造を作れる。
  たとえば,次のような文章をXMLデータ構造にしてみる。
  
    ・XML入門1
     +XMLはデータだ
     +XSLはプログラムだ
  
    ・XML入門2
     +XMLの要素
     +XMLの属性
     
  全体のデータを囲むルート要素が必要なので,これを<data>とする。
  文章のかたまりを<bunsho>とする。番号を属性としてつけておく。
  文章の表題を<title>とする。
  文章の本文を<honbun>とする。
  一行を<ln>とする(lineを省略した)。
  
  そうすると,次のように表現できる。


   <?xml version="1.0" encoding="UTF-8"?>
   <data>
    <bunsho bango="1">
     <title>XML入門1</title>
     <honbun>
      <ln>XMLはデータだ</ln>
      <ln>XSLはプログラムだ</ln>
     </honbun>
    </bunsho>
    <bunsho bango="2">
     <title>XML入門2</title>
     <honbun>
      <ln>XMLの要素</ln>
      <ln>XSLの属性</ln>
     </honbun>
    </bunsho>
   </data>

      

  これでXMLデータベースが作成できた。test2.xmlとして保存する。

4 XMLは自由に要素を定義して,自由に階層構造が作れる。

5 それでは,これに次のようなXSLスタイルシートを適用して表示してみよう。


  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="data">
    <xsl:value-of select="."/>
  </xsl:template>

  </xsl:stylesheet>


  最初の3行は決まり文句なので,こんなものと考えておこう。
  次の3行も,ほぼ決まり文句で,こんなふうに始まる。
  処理手順のかたまり(テンプレート)を呼び出す。
  
  最後の3行が,処理のためのテンプレートだ。
  data全体をひとまとまりとして,全部のデータを羅列して抽出する。
  真ん中の1行が実際の処理で,各要素のデータを出力する。
       
  test2.xslとして保存する。
  
6 下のボタンを押すとサンプルを実行する。
  ファイル名はtest2.xml,test2.xslである。
 



  htmlのサンプルは次のとおり。前回との違いはファイル名だけだ。


  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script src="xslprocessor.js"></script>
  <script type="text/javascript">
  <!--
  function test(xm,xl,loc,jmp){
         xslproc(xm,xl,loc,jmp);
  }
  //-->
  </script>
  </head>
  <body>
  <input type="button" onclick="test('test2.xml','test2.xsl','kiji',0)" value="実行">
  <div id="kiji"></div>
  <body>
  <html>

 
次のお勉強
 
inserted by FC2 system