例えば、以下のようなsample.xmlをWebブラウザで表示する為には
どのようにするればよろしいのでしょうか。どなたか教えてください。


 <?xml version="1.0" encoding="Shift_JIS" ?>
- <cars>
- <car>
<name>乗用車</name>
<price>150</price>
 </car>
</cars>

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちわ。


もう1ヶ月以上たっているから、遅いかもしれませんが
現在私も同じような勉強をしていて、難しいことはわからないけど
質問内容を見て「私もこのレベル!!」と思ったので参加してみます。

まず、XMLってそのままではブラウザーに表示できないようです。
HTMLと違って表示機能はもっていなくて、質問に書かれていたものは
単なるデータのみのようですね。
 他に方法はたくさんあるのかもしれませんが、私の勉強したところによると
XMLをブラウザーに表示する為には、他にXSLと言われるスタイルシートを
用意して、XML(データ)+XSL(スタイルシート)の2ファイル(この場合は)
を元に、XSLT(extensible Stylesheet Language Transformation)と呼ばれる
変換ツールを使って、HTMLや他の形式に変換して初めて表示できる
(スタイルシートによっては、音声として聞ける)状態のファイルに
なるようです。
 このXSLTというツールは、無料でダウンロードできるものが多数あるようです。
ちなみに私はApache(アパッチ)のサイトからダウンロードしました。


質問のXMLには、以下の2行と、下の1行をかぶせて、

<?xml version="1.0" encoding="Shift_JIS" ?>
<PAGE>
・・・・・・・・・・・・・・・・・・・・・・
</PAGE>


別に用意するスタイルシートは以下のような感じに作るのかなぁ。。。。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/
1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="Shift_JIS"/>

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

<xsl:template match="PAGE">
<HTML>
<BODY>
<xsl:apply-templates/>
</BODY>
</HTML>
</xsl:template>

<xsl:template match="cars">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="car">
<xsl:value-of select="name"/><BR/>
<xsl:value-of select="price"/><BR/>
</xsl:template>

</xsl:stylesheet>

そして、XSLTツールで変換するとHTMLができると思いますよ。

http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xsl …
には、XMLをHTMLに変換する方法について、サンプルをもとにやり方とか
書かれています。結構参考になるので覗いてみてはいかがですか?

参考URL:http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xsl …
    • good
    • 3

補足です。


以前の質問に、似たようなものがありました。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=8060
    • good
    • 0

質問の意味を取り違えてたらごめんなさい。


ブラウザ(IE)で、HTMLに変換後のソースを見たいということでしたら以下のとおりです。(私も教えてもらったのですが)

■セットアップ
1. 下記からダウンロード。
http://msdn.microsoft.com/downloads/default.asp? …

2. 実行して適当なディレクトリに解凍(セットアップされる訳じゃなくて単に解凍されるだけ)。

3. 出てきた2つのinfファイルを右クリックしてセットアップ。

4. IEが起動していたらいったん終了する。

■使い方
IEの右ボタンに「Validate XML」と「View XSL Output」が増えてます。
XML+XSLTのページを表示した状態で「View XSL Output」をクリックするだけです。
ついでに、「Validate XML」てのはXMLにエラーが無いかチェックするものです。

でも、質問は変換されたHTMLをブラウザで表示したいということなのかもしれませんね?
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q

の使い方

xhtml+cssをやり始めです。

実は、<br />と<p></p>の使い方についてわかんなくて教えてくださーい。

普通のhtmlでは改行したいときは、<br />を入れまくっていましたが、xhtmlは<br/>ではなく改行は<p></p>でといわれました。

<p>あいうえお</p>
<p>かきくけこ</p>

といれると改行にはなりますが、1行あけたい場合はどうしますか?

<p>あいうえお</p>
<p></p>
<p>かきくけこ</p>

としても1行あきませんよね?
こういう場合は

<p>あいうえお</p>
<br />
<p>かきくけこ</p>

でいいのですかね???

単純な質問ですみません。

Aベストアンサー

基本的に、<p>タグで段落を作るときに、勝手に一行開けてくれると考えていいかと思います。
そして、<br>は行をあけない普通の改行ということになります。

つまり、一行あけるときは
<p>あいうえお</p>
<p>かきくけこ</p>

行をあけないときは
<p>あいうえお<br />
かきくけこ</p>
となります。

*余談ながら、xhtmlでは<body>の直下に普通のテキストを書くことができませんので、文章を書くときはそれを<p>で囲ってやることが必要となります。

QXSLTを使用したXML->XML変換で...

XSLTを使用したXMLからXMLへの変換で、やり方が分からないのでどなたかお教え願います。

以下にXMLを記述します。

----[入力側]-----
<INPUT>
<IN1>
<old>100</old>
<new>100</new>
</IN1>
<IN2>
<IN21>
<old>200</old>
<new>200</new>
</IN21>
<IN22>
<old>300</old>
<new>300</new>
</IN22>
</IN2>
</INPUT>

----[出力側]-----
<OUTPUT>
<OUT1>
<OUT11>
<old>100</old>
<new>100</new>
</OUT11>
<OUT12>
<OUT121>
<old>200</old>
<new>200</new>
</OUT121>
<OUT122>
<old>300</old>
<new>300</new>
</OUT122>
</OUT12>
</OUT1>
</OUTPUT>


【質問内容】
 集団項目でないタグ(入力側のIN1およびIN2)を集団項目として出力したい

XSLTを使用したXMLからXMLへの変換で、やり方が分からないのでどなたかお教え願います。

以下にXMLを記述します。

----[入力側]-----
<INPUT>
<IN1>
<old>100</old>
<new>100</new>
</IN1>
<IN2>
<IN21>
<old>200</old>
<new>200</new>
</IN21>
<IN22>
<old>300</old>
<new>300</new>
</IN22>
</IN2>
</INPUT>

----[出力側]-----
<OUTPUT>
<OUT1>
<OUT11>
<old>100</old>
<new>100</new>
</OUT11>...続きを読む

Aベストアンサー

> 入力側のIN1,IN2が複数回繰り返された場合、
> 出力側もOUT1が複数回繰り返されるって感じです。

IN1とIN2が必ず1対1に対応するという条件でいいなら(複数の組が存在しても可)これでいけるでしょう。



IN1およびIN2以下の構造はオリジナルのまま出力されます。

<xsl:template match="INPUT">
 <OUTPUT>
  <xsl:apply-templates />
 </OUTPUT>
</xsl:template>
<xsl:template match="IN1">
 <xsl:text disable-output-escaping="yes">&lt;OUT&gt;</xsl:text>
  <xsl:copy-of select="." />
</xsl:template>
<xsl:template match="IN2">
 <xsl:copy-of select="." />
 <xsl:text disable-output-escaping="yes">&lt;/OUT&gt;</xsl:text>
</xsl:template>

> 入力側のIN1,IN2が複数回繰り返された場合、
> 出力側もOUT1が複数回繰り返されるって感じです。

IN1とIN2が必ず1対1に対応するという条件でいいなら(複数の組が存在しても可)これでいけるでしょう。



IN1およびIN2以下の構造はオリジナルのまま出力されます。

<xsl:template match="INPUT">
 <OUTPUT>
  <xsl:apply-templates />
 </OUTPUT>
</xsl:template>
<xsl:template match="IN1">
 <xsl:text disable-output-escaping="yes">&lt;OUT&gt;</xsl:text>
  <xsl:copy-of sele...続きを読む

QVB2005 で encoding="Shift_JIS"や"EUC-JP"のXMLファイルを保存する方法

VB2005, XML の初心者です。

VB2005で encoding="Shift_JIS" や "EUC-JP" のXMLデータをファイルに保存するにはどうすれば良いのでしょうか。
encoding="UTF-8"であれば、下記で保存できますが、="Shift_JIS" や "EUC-JP" になると保存でエラーになってしまいます。

下記ソースでは、strXMLには正しくXMLが入っていますが、saveするとエラーになり、ファイルの中身を確認すると、日本語の箇所で切れていました。

Public Client As TcpClient

Dim stream As NetworkStream
stream = Client.GetStream()

Dim Data(10000) As Byte
Dim len As Int16 = stream.Read(Data, 0, Data.Length)
strXML = System.Text.Encoding.UTF8.GetString(Data, 0, len)

MsxmlDoc = New MSXML2.DOMDocument
Msxmldoc.Loadxml(strXML)
MsxmlDoc.save ( "C:\XML.xml")

文字コードについても初心者ですので、ヒントになるようなことでも教えていただければ幸いです。
よろしくお願い致します。

VB2005, XML の初心者です。

VB2005で encoding="Shift_JIS" や "EUC-JP" のXMLデータをファイルに保存するにはどうすれば良いのでしょうか。
encoding="UTF-8"であれば、下記で保存できますが、="Shift_JIS" や "EUC-JP" になると保存でエラーになってしまいます。

下記ソースでは、strXMLには正しくXMLが入っていますが、saveするとエラーになり、ファイルの中身を確認すると、日本語の箇所で切れていました。

Public Client As TcpClient

Dim stream As NetworkSt...続きを読む

Aベストアンサー

返事が遅くなりました。
すみません。
MSXML2.DOMDocumentでの文字コード指定による保存ですが、OKWave内でJScript.NETを用いた回答が過去にありましたので、参考URLをご覧になってみてください。
FileStreamを使用することで実現できそうです。

>また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。
読み込んで何をしたいのでしょうか?
System.Xml.XmlDocumentのLoadXMLメソッドを使用すれば、あまり気にしなくても良いと思うのですが...

参考URL:http://okwave.jp/qa1772802.html

Qencoding="UTF-16" ってUTF-16で書かれても。

 以前からずっと疑問だったのですが。。。
 XML宣言の中に、エンコーディングを記述するところがありますが、その宣言文字列自体をそのエンコーディングで記述するというのはおかしくないでしょうか。
 たとえば、UTF-16だったら、

encoding="UTF-16"

と書くわけですが、これ自体がUTF-16で書かれているわけですよね? UTF-16で書かれているとわかっていたら宣言する必要はないし、宣言読まないとわからないんだったら、この宣言自体も読めないはずです。
 今実際に、UTF-16で書かれていて、エンコーディング宣言もしているXML文書をあるソフトで読もうとしているのですが、1バイト目を読んだところで「Unexpected character. position = 0 」と出力されてエラーになります。
 強制的にUTF-16で読ませる昨日もあるので、そうすればエラーは起こりませんが、それじゃエンコーディング宣言の存在自体に意味がないのでは? これは、最初の時点で読めないこと自体がこのソフトの不具合なのでしょうか?
 これってどういうことなんでしょう。解決できるんでしょうか。

 以前からずっと疑問だったのですが。。。
 XML宣言の中に、エンコーディングを記述するところがありますが、その宣言文字列自体をそのエンコーディングで記述するというのはおかしくないでしょうか。
 たとえば、UTF-16だったら、

encoding="UTF-16"

と書くわけですが、これ自体がUTF-16で書かれているわけですよね? UTF-16で書かれているとわかっていたら宣言する必要はないし、宣言読まないとわからないんだったら、この宣言自体も読めないはずです。
 今実際に、UTF-16で書かれていて、エンコ...続きを読む

Aベストアンサー

参考書の受け売りでスイマセン。O'Reilly から出ている "XML in a nutshell" というリファレンス本に、XML パーサのエンコーディング想定処理についての記述がありました。以下、拙訳ですが、当該部分の引用です。
-- * -- * --
(略) XML パーサは、文書の最初の数バイトからその文字セットの想定を試みるだろう。パーサによる基本的なチェックは以下の処理を含む:

・もし最初の2バイトが #xFEFF の場合、パーサはそのバイト列をユニコードのバイトオーダーマーク(BOM)と認識するであろう。そして、その文章はビッグエンディアンのユニコードの UCS-2 (訳注; UTF-16)で記述されていると想定される。その知識に基づいて、残りの文章を読み進める。

・もし最初の2バイトが #xFFFE の場合、パーサはそのバイト列をユニコードのバイトオーダーマーク(BOM)と認識するであろう。そして、その文章はリトルエンディアンのユニコードの UCS-2 (訳注; UTF-16)で記述されていると想定される。その知識に基づいて、残りの文章を読み進める。

・もし最初の4バイトが #x3C3F786D の場合、つまりこれは ASCII 文字の "<?xml" だが、その場合そのファイルは ASCII 文字の上位セットで記述されていると想定される。特にユニコードの UTF-8 で記述されていると仮定するかもしれない。仮にそれが間違いだったとしても、この情報は、どの文字セットを実際に使っているかの宣言に辿り着く迄は、残りの文章を読み進める上では十分と言えよう。
-- * -- * --

他にも、XML パーサは UTF-8 と UTF-16 には対応していなければならないような記述もありますので、上記のような UTF-16 を前提とした処理も必要なのではないでしょうか。

参考URL:http://www.oreilly.com/catalog/xmlnut3/

参考書の受け売りでスイマセン。O'Reilly から出ている "XML in a nutshell" というリファレンス本に、XML パーサのエンコーディング想定処理についての記述がありました。以下、拙訳ですが、当該部分の引用です。
-- * -- * --
(略) XML パーサは、文書の最初の数バイトからその文字セットの想定を試みるだろう。パーサによる基本的なチェックは以下の処理を含む:

・もし最初の2バイトが #xFEFF の場合、パーサはそのバイト列をユニコードのバイトオーダーマーク(BOM)と認識するであろう。そして、その文...続きを読む

Q単独

お世話になります。

現在、サンプルのXSLTスタイルシート内を解析中なのですが、
各テンプレート内に、
<xsl:apply-templates />という単独での要素が、
いくつも出てきます。

ネット上で調べてみたところ、
「ほかのテンプレートの処理に移ることが出来る」
ということのようですが、
いまいち、この単独での要素を、
記述する意味が、よくわかりません。
(最近、XSLTを本で勉強しはじめたばかりなのですが、
  その本には、”<xsl:apply-templates select="mains">”みたいな例しか掲載されておらず、
  <xsl:apply-templates />という単独での説明が、残念ながら存在しておりませんでした・・・)

そこでご質問内容ですが、
XSLTスタイルシート内のテンプレート内に、
<xsl:apply-templates />という単独で、
で記述するのは、
どのようなことを実現させたいときに、
記述しているのでしょうか?

以上になります。
出来ましたら、例などを出していただきまして、
具体的に理解しやすく教えていただけますと
助かります。
どうぞよろしくお願いします。

お世話になります。

現在、サンプルのXSLTスタイルシート内を解析中なのですが、
各テンプレート内に、
<xsl:apply-templates />という単独での要素が、
いくつも出てきます。

ネット上で調べてみたところ、
「ほかのテンプレートの処理に移ることが出来る」
ということのようですが、
いまいち、この単独での要素を、
記述する意味が、よくわかりません。
(最近、XSLTを本で勉強しはじめたばかりなのですが、
  その本には、”<xsl:apply-templates select="mains">”みたいな例しか掲載されておらず、
  <xs...続きを読む

Aベストアンサー

わからないときは、仕様で確認するといいかも。
「select 属性が無いときは、カレントノードの全ての子ノード」ってかいてあったよ?

5.4 Applying Template Rules - XSL Transformations (XSLT)
→ http://www.w3.org/TR/xslt/#section-Applying-Template-Rules

「In the absence of a select attribute, the xsl:apply-templates instruction processes all of the children of the current node, including text nodes.」


だから、
select="node()"
の省略とみなして、いい気がする。


このQ&Aを見た人がよく見るQ&A

おすすめ情報