中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

XMLってなぁに?(第7回)

まず1行目にXML宣言がついている。
これは変換後のドキュメントをXMLと誤解している証拠だ。

XSL変換にはモードとして3つあると思ってもらったら簡単でXML, HTML, TXTの3モードが存在する。
3つのモードともそれぞれ特徴があるが、XMLモードと誤認識しているからXML宣言が入っている。

では強制的にTXTモードに切り替えよう。

<xsl:output method="text" />

の行を

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

の直下に入れてみて再度変換してみよう。

結果.txt

"CDRメディア",

"2000"

"DVDメディア",

"5000"

"FDメディア",

"1000"

このようにXML宣言は無事に消えた。

ただしなぜか改行が入ってしまっている。
思い返してみてほしい。

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

品名のテンプレートはこのような形式になっていた、タグは<TAG>から</TAG>までがタグとしての値である。
この場合

<xsl:template match="品名">!!改行!!
"<xsl:apply-templates />",!!改行!!
</xsl:template>

と2箇所に改行が入ってしまっている。

HTMLの場合にはスペースも改行も読み飛ばすが、TXTの場合には改行を読み飛ばされると改行する手段がなくなってしまう。

ということで、改行を消すにはXSLに含まれる改行を消せばいいとわかる。

それでは改行を消してみて変換してみてほしい。
答え合わせは次回

投稿日時 : 2004年9月17日 22:57

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント