プロが教える店舗&オフィスのセキュリティ対策術

初心者のものです。
XMLでテーブルを作成して文字を入れたのですが、
文字がないところは線がでてこなくなりました。
文字を入れると線がでてくるので、
空白かスペースを入れたいと思うのですが、
普通に入れても認識されません。何か良い方法はないでしょうか?
とても困ってます。
よろしくお願いします。

A 回答 (2件)

 まずXMLの基本的な所から(知っていたら無視してください)。


XML文書は、XMLプロセッサによって解析され、その結果がアプリケーションに渡されます。その際、プロセッサ側では、属性値に含まれる空白以外、すべての空白文字(スペースとタブと改行)をアプリケーションに渡します。つまり、空白文字が認識されるかどうかはアプリケーション側の問題です。別な言い方をすれば、XML自体というよりもむしろ個々のアプリケーションの問題です。

 以上を踏まえた上で、まずあなたがXMLをテーブルで表示するのに何を使用しているのか(つまりXMLデータを処理するアプリケーションが何であるか)が重要となります。その情報を書いておくと、より良い回答が得られると思います。XML自体にテーブル表示する機能があるわけではありませんし。

 一般的には、xml:lang="preserve"という属性指定を使うことで、空白を保持して欲しいということをアプリケーション側に示すことができます(ただし、それを尊重してくれるかどうかはアプリケーション側の裁量に任されています)。
    • good
    • 0
この回答へのお礼

XSLファイルを使ってました。
XMLの基礎を知らずに使っていたので説明が出来てませんでした。
丁寧に指摘していただきありがとうございます。
ありがとうございました。

お礼日時:2001/09/27 13:55

jo-jiさんも書かれてますが、XML自体にテーブル表示する機能があるわけではないです。

しかしながら線(セルのボーダー?)が出る、出ないという質問になるということは、、、
●なんらかの入力支援ツールを使用している。
●ツールが自動生成したXSLを使用している。
●自動で関連付けされているため、XMLに表示機能があると誤解してしまった。
という推測で書き込みます。推測で書いてますので、外してたらごめんなさい。

#どうしてもセルのボーダーが必要なら、XSLファイルを変更しましょう。

多分、生成されたXMLファイルと同じフォルダ内に、xxx「.xsl」というファイルがあると思います。テキストエディタで開いてみて下さい。
XML文書を表示するための処理が書かれています。

この中から、HTMLの<td>要素の中の<xsl:value-of />を探します。
<table>
 <tr>
  <th>
  </th>
 </tr>
 <tr>
  <td>
--------------------
   <xsl:value-of />
--------------------
  </td>

この一行のみを、下の4行と入れ替えます。コピペして使って下さい。

<xsl:choose>
<xsl:when test=".[text()]"><xsl:value-of /></xsl:when>
<xsl:otherwise>空白です</xsl:otherwise>
</xsl:choose>

これで空のセルには全て「空白です」が入るはずです。
動作を確認できたら、あとは「空白です」を「全角スペース」に変更すれば出来上がり。

#識者の方に怒られそうな解答だな、我ながら。
#仕様を無視した気分。
    • good
    • 0
この回答へのお礼

ありがとうございます。
おっしゃる通りXSLを使用しています。
空白はこのようにするのですね。
意味のわからないままXMLやXSLを使ってました。すいません。
ありがとうございます。

お礼日時:2001/09/27 13:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!