- swat
- 常連さん
- 会議室デビュー日: 2002/03/21
- 投稿数: 33
- お住まい・勤務地: 埼玉県
|
投稿日時: 2002-03-21 17:49
こちらには初めて投稿します。渡辺といいます。
表題のとおり、XSLTでHTMLのTDタグにnowrap属性をつけたいのです。
ソースとなるXML
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
コード: |
| <component kind="table">
<data>
<border>1</border>
<line>
<cell rowspan="2" colspan="2" nowrap="yes">縦2つ横2つ改行なしテキストになっています。</cell>
<cell>通常セル</cell>
</line>
<line>
<cell>通常セル</cell>
</line>
<line>
<cell nowrap="yes">改行なしテキストになっています。</cell>
<cell nowrap="yes">改行なしテキストになっています。</cell>
<cell nowrap="yes">改行なしテキストになっています。</cell>
</line>
</data>
</component>
|
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
XSLTのソース(cell部分のみ抜粋)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
コード: |
| <xsl:template match="cell">
<td>
<xsl:if test="@rowspan > 0">
<xsl:attribute name="rowspan">
<xsl:value-of select="@rowspan"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@colspan > 0">
<xsl:attribute name="colspan">
<xsl:value-of select="@colspan"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="."/>
</td>
</xsl:template>
|
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
こんな感じでrowspan、colspan属性をつけることはできたのですが、nowrapは値を与えるわけではないので、どのように属性としてつければよいのかわかりません。
classを指定して、スタイルシートで逃げよ、ということなのでしょうか?
[ メッセージ編集済み 編集者: swat 編集日時 2002-03-21 17:50 ]
|
- 井上孝司
- ぬし
- 会議室デビュー日: 2001/09/08
- 投稿数: 668
- お住まい・勤務地: 東京都
|
投稿日時: 2002-03-21 18:00
井上です。
<DL COMPACT="COMPACT"> と同じ理屈で、<TD NOWRAP="NOWRAP"> とできませんか ?
_________________ www.kojii.net
|
- swat
- 常連さん
- 会議室デビュー日: 2002/03/21
- 投稿数: 33
- お住まい・勤務地: 埼玉県
|
投稿日時: 2002-03-21 18:17
渡辺です。
<TD NOWRAP="NOWRAP">が通ることをはじめて知りました。
下記のように設定したらできました。お騒がせしました。
コード: |
| <xsl:template match="cell">
<td>
<xsl:if test="@rowspan > 0">
<xsl:attribute name="rowspan">
<xsl:value-of select="@rowspan"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@colspan > 0">
<xsl:attribute name="colspan">
<xsl:value-of select="@colspan"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@nowrap = 'yes'">
<xsl:attribute name="nowrap">nowrap</xsl:attribute>
</xsl:if>
<xsl:value-of select="."/>
</td>
</xsl:template>
|
iXSLTの体験版でHTMLを吐き出させたら、<td nowrap>と吐き出しました。これって、どのプロセッサでも一緒なんでしょうかね?
[ メッセージ編集済み 編集者: swat 編集日時 2002-03-21 18:18 ]
|
- MMX
- ぬし
- 会議室デビュー日: 2001/10/26
- 投稿数: 861
|
投稿日時: 2002-03-22 10:20
>iXSLTの体験版でHTMLを吐き出させたら、<td nowrap>と吐き出しました。これって、どのプロセッサでも一緒なんでしょうかね?
結果treeを出力する時、出力method="html" をどの程度ていねいに、処理しているか
によるでしょう。
HTMLの「属性の短縮記述機構」を処理する程度です。
nowrap="nowrap"
nowrap=nowrap
nowrap (他に衝突するキーワードが無い時)
のどれを書いてもよい
(パーサーに負担をかけても読みやすく、SGMLは人にやさしい)
[ メッセージ編集済み 編集者: MMX 編集日時 2002-03-22 10:32 ]
|
- swat
- 常連さん
- 会議室デビュー日: 2002/03/21
- 投稿数: 33
- お住まい・勤務地: 埼玉県
|
投稿日時: 2002-03-22 14:00
引用: |
| 結果treeを出力する時、出力method="html" をどの程度ていねいに、処理しているか
によるでしょう。
|
iXSLTで、output methodの宣言をはずしてみても、同様の結果が得られました。
そういった処理はXSLTプロセッサに任されているということなんですね。
|