dポイントプレゼントキャンペーン実施中!

すいません。まったくXMLに関して無知です。
一応基本的な書き方についてWebで調べたのですが、どうしてもわからなかったので教えて頂ければと思います。

ある場所でのイベントの時間をXMLでまとめてプログラムで出力したいのですが、
<place>
 <name>渋谷</name>
 <monday>
 <time>0</time>
 <time>1</time>
 <time>2</time>
 </monday>
 <tuesday>
 <time>0</time>
 <time>6</time>
 <time>12</time>
 </tuesday>
・・・
 <sunday>
  <time>12</time>
  <time>13</time>
  <time>14</time>
</sunday>
</place>
<place>
 <name>新宿</name>
 <monday>
 <time>0</time>
 <time>1</time>
 <time>2</time>
 </monday>
 <tuesday>
 <time>0</time>
 <time>6</time>
 <time>12</time>
 </tuesday>
・・・
 <sunday>
  <time>12</time>
  <time>13</time>
  <time>14</time>
</sunday>
</place>
のような感じで、場所と曜日と時間の紐付けをしたいのですが、このような書き方でいいのでしょうか。
プログラムのほうできちんと読み込めないので質問してみました。
もちろんプログラムが間違っている可能性もあるのですが、<time>が先頭しか読まれないようなので、こういう”いくつかわからないけどデータがある”ような場合、XMLではどのように記述すれば良いかご教授願えますでしょうか。
よろしくお願いいたします。

A 回答 (2件)

プログラムはSAXですか?DOMですか?


あるいはXSLTとか?

どんなプログラムなのか書かれていないのでわかりませんが
処理するのはプログラムなのでXMLに罪はありません。
XMLは単なるテキストですからそれ自身がどうこうということはありません。
そんなわけで

>こういう”いくつかわからないけどデータがある”ような場合、XMLではどのように記述すれば良いかご教授願えますでしょうか。

別に質問内容通りのXMLの書き方で特に問題は無いです。
(まぁ私なら
 <place name="渋谷">
  <time>0</time>
  ・
  ・
 とか
 <place>
  <name>渋谷</name>
  <event>
   <time>0</time>
  ・
  ・
 とかにしますけど。まぁこんなのは好みの問題です。)

ひとつしか取らないのなら、プログラムのロジックがひとつしか取らないようになっているんだと思います。
例えばDOMを使っているのならgetElementsByTagName("time")とかで
リスト形式で取れるはずです。
もちろん書き方は開発言語とかにもよって違ってきますけど。
おそらく渋谷は渋谷でtimeを取得したいでしょうし、
sundayはsundayで取得したいとかあると思います。
そんなわけでXQueryとか取れるメソッドを使って取ってくることも多いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはりXML的には問題ないということで^^
わからない単語がたくさん出てきたのでまた調べてみます。
なんかXMLってやさしく解説されているところでもいろいろな書き方があってやさしい解説を読みながらも?なところがたくさんあって敷居が高いです。
少しずつ学習していきたいと思います。
今回は、わけがわからないのでXMLではなく別な形式に変えてプログラムすることにします。
ありがとうございました。

お礼日時:2010/04/15 09:23

書き方というか、XMLの概念としては間違っていませんが、


XMLは読み込むソフトによってフォーマットが変わってくるので、
これで合ってるかどうかというのは言えません。
現状ではあなた以外にはおそらく誰にもわかりません。

例えばInDesign用のXMLでしたら、
---------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><rss><group>
<list xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" aid:table="table" aid:trows="4" aid:tcols="2">
<line aid:table="cell" aid:crows="1" aid:ccols="1">0001</line><line aid:table="cell" aid:crows="1" aid:ccols="1">192.168.1.10</line>
<line aid:table="cell" aid:crows="1" aid:ccols="1">0002</line><line aid:table="cell" aid:crows="1" aid:ccols="1">192.168.1.11</line>
<line aid:table="cell" aid:crows="1" aid:ccols="1">0003</line><line aid:table="cell" aid:crows="1" aid:ccols="1">192.168.1.12</line>
<line aid:table="cell" aid:crows="1" aid:ccols="1">0004</line><line aid:table="cell" aid:crows="1" aid:ccols="1">192.168.1.13</line>
</list>
</group></rss>
---------------------------

といったかんじになります。
    • good
    • 0
この回答へのお礼

なるほど、そうですか・・・
InDesignのをみると属性なんかも同じものが複数回設定されてますね。
そうするとプログラム側で同じタグの中身をどうやって取り出すか、ですね。
ありがとうございました。

お礼日時:2010/04/14 15:19

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