ソースコードの改行について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
bingo
アクティブユーザー
記事: 10
登録日時: 2007年5月15日(火) 13:02

ソースコードの改行について

投稿記事 by bingo » 2007年5月21日(月) 16:33

リファレンスには、
XHTML及び、RSS等のXMLを出力する際は、xslファイル中のmethod属性は、

method="xml" を指定すると記載してあると思います。

この指定を行うと、動作及び視覚部分の表示等は問題なく行われますが、ソースコード(XHTML・XML等の)を見るとすべて連結されて出力されてしまいます。

xslを記載する上での仕様なのだとは思いますが、ソースコードを改行する方法等があればお教え願いますでしょうか?

たとえばxslのコード中に改行コードを記載する方法等?があるのでしょうか?

お手数ですが宜しくお願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ソースコードの改行について

投稿記事 by webmaster » 2007年5月22日(火) 17:30

 bingoさん、ご質問ありがとうございます。

 xsltのxsl:output要素に、indent="yes"という属性を指定すると、お望みの
結果を得られるかもしれません。ただ、indent="yes"時の処理結果は環境に
よって異なるので、うまく行かない事もあるかもしれません。

 もしくは、改行コードとして「
」(&は半角で)と直接記述すると、
任意の場所に改行を出力することができます。

 以上、一度お試し頂ければ幸いです。

bingo
アクティブユーザー
記事: 10
登録日時: 2007年5月15日(火) 13:02

投稿記事 by bingo » 2007年5月23日(水) 10:24

webmaster様

詳細ありがとうございます。

完全に意図したソースコードを保つ事は難しいですが、「indent="yes"」を指定する事で「method="html"」を指定した時と同様の改行が出来ました。

他のCMSツールテンプレート等も同様ですが、意図したようにソースコードを保とうとすると、(X)HTMLタグ等を挟む独自タグの改行又は配置位置等を調節しないと余計な改行やスペースが付加されてしまうので難しいですね。

上記の処置をした際、どうしても「aタグ」の前後にも改行が生まれてしまうのが気になり、試行錯誤、複数パターンを試して見ましたが解決しませんでした。

仕様なんでしょうかね?

又、残念ながら改行コード「
」では改行する事ができませんでした。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

投稿記事 by webmaster » 2007年5月23日(水) 21:56

 bingoさん、ご報告ありがとうございます。

 indent="yes"の出力結果は微調整ができない為、出力結果に不都合がある場合
には、申し訳ありませんが仕様としてindent="no"の状態でお使い頂く他なさそう
です。m(__)m

 強制改行については、申し訳ありません、正しくは次の記述が必要でした。

コード: 全て選択

<xsl:text disable-output-escaping = "yes" >&#x0a;</xsl:text>
 ちょっと長いので、何度も改行させるのには不向きですね…。
 恐らくご期待には沿えないかと思いますが、現在の所、これがベターな解決法と
なるかと思います。m(__)m

返信