Web Artisan Blog - ウェブ アルチザン ブログ

XML:XSLTのelement、attribute:XSLTでHTML出力する際のアンカータグを記述する方法

XML (18 items)

2004年09月10日

■要素ノード「xsl:element」
XSLTでHTMLタグ自体を生成する際には、要素ノード「xsl:element」タグを使用する。

<記述例>

<xsl:element name="a"> 

</xsl:element> 




■属性ノード「xsl:attribute」
またその際、生成した要素の属性を設定するには、属性ノード「xsl:attribute」タグを使用する。

<記述例>

<xsl:attribute name="href">

</xsl:attribute> 


<スポンサードリンク>
つまりどういう事かと言うと、
XSLT内に直接HTMLタグを記述する事は可能なので、
<head>タグなどは、必要な位置に”<head>”とタグをそのまま記述すればいいのだが、
アンカー”<a>”タグのように、属性(アンカーで言えば、href属性)を持っているタグを
下記のように表現しようとすると、エラーとなる。

<エラー例>

<a href="<xsl:value-of select="./siteurl" />">WEB Artisan</a>


つまり属性の中に、「xsl:value-of」などXSLTの定義を埋め込む事はできない。
このような場合は、要素ノードと属性ノードを生成する事で実現可能となる。



<使用例>
・XMLデータ(data2.xml)

<?xml version="1.0" encoding="EUC-JP" ?> 
<?xml-stylesheet type="text/xsl" href="data2.xsl"?> 
<test>
<site>
<sitename>RESTARTSYSTEM CO.,LTD.</sitename> 
<siteurl>http://www.res-system.com/</siteurl> 
</site>
<site>
<sitename>WEB Artisan</sitename> 
<siteurl>http://www.res-system.com/weblog/</siteurl> 
</site>
<site>
<sitename>Yahoo! Japan</sitename> 
<siteurl>http://www.yahoo.co.jp/</siteurl> 
</site>
</test>




・XMLデータを編集するXSLT(data2.xsl)

<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
 method="html" 
 version="1.0" 
 encoding="Shift_JIS" 
 omit-xml-declaration="yes"
 standalone="yes"
 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
 indent="yes" 
 media-type="text/html"/>

<xsl:template match="/">

<!-- HTML出力部 -->
  <html>
  <head>
  <title>Result</title>
  </head>
  <body>

 <xsl:apply-templates />

<!-- HTML出力部 -->
  </body>
  </html>

</xsl:template> 

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

<xsl:template match="site">
<!-- if文分岐 -->
  <xsl:if test="./sitename = 'WEB Artisan'">

<!-- アンカータグ出力部 -->
    SITENAME:
    <xsl:element name="a"> 
      <xsl:attribute name="href">
        <xsl:value-of select="./siteurl" />
      </xsl:attribute> 
      <xsl:value-of select="./sitename" /><br />
    </xsl:element> 


  </xsl:if>
</xsl:template> 

</xsl:stylesheet>




・生成したHTML

<html>
<head>
<title>Result</title>
</head>
<body>
SITENAME:<a href="http://www.res-system.com/weblog/">WEB Artisan</a><br />
</body>
</html>




■使用例のダウンロード
ダウンロードし、data2.xmlをブラウザで見る事で確認できます。

>>ダウンロード
※XSLTの動くブラウザでお試し下さい。IEであればIE6以上です。

<スポンサードリンク>
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=262