C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: XMLからのデータ取得について


(過去ログ 76 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■45120 / inTopicNo.1)  XMLからのデータ取得について
  
□投稿者/ Bianchi (12回)-(2009/12/31(Thu) 01:03:57)

分類:[C#] 

C# 2008 Visual Studioでデータを作成しております。

XMLファイル----------------------------------------------------------------------------------------------------------
  <pt tm="0" lat="34.7939453125" lon="135.342483520508" ele="130.630004882812" dist="0.218" hr="90" cadence="0" />
<pt tm="1" lat="34.7939491271973" lon="135.342483520508" ele="130.630004882812" dist="0.218" hr="88" />
<pt tm="3" cadence="38" />
<pt tm="5" lat="34.7939567565918" lon="135.342514038086" ele="130.582992553711" dist="3.08" hr="88" cadence="50" />
----------------------------------------------------------------------------------------------------------------------
このXMLファイルから
 tm,lat,lon,ele,dist,hr,cadence
のデータを取得し、配列に格納したいと思っております。
strArray[i,0] = tmデータ
strArray[i,1] = latデータ
strArray[i,2] = lonデータ
strArray[i,3] = eleデータ
strArray[i,4] = distデータ
strArray[i,5] = hrデータ
strArray[i,6] = cadenceデータ
といった具合に。
※配列にしなくても良いのですが、xmlNode?での扱いが良くわかっていないので、
 配列に落とし込みます。

ところが、XMLファイルにはデータの抜け(2行目であればcadenceがない、3行目ではcadenceしかない等)
があります。
この抜けがある場合、抜けている位置は0とし抜けがないものには取得データを格納する。

といったことがしたいのですが、どのようにすれば良いのかわからず困っております。

前回も同じような質問をさせていただいたのですが、どうも良くわかりませんでした。
どなたか教示いただければ幸いです。


引用返信 編集キー/
■45121 / inTopicNo.2)  Re[1]: XMLからのデータ取得について
□投稿者/ επιστημη (2364回)-(2009/12/31(Thu) 02:04:26)
επιστημη さんの Web サイト
正直なにがわからんのかわからんです。
↓こんなんじゃダメなんすか?

using System;
using System.Xml;

namespace XML_Parse
{
    class Program
    {
        static void Main()
        {
            var doc = new XmlDocument();
            doc.Load("trial.xml");
            string[] tags = { "tm", "lat", "lon", "ele", "dist", "hr", "cadence" };
            foreach ( XmlNode element in doc.DocumentElement.GetElementsByTagName("pt") )
            {
                foreach (string tag in tags)
                {
                    // tagがなければ(null)、あればその値を書く
                    XmlAttribute attr = element.Attributes[tag];
                    Console.WriteLine("{0} = {1}", tag, attr == null ? "(null)" : attr.Value);
                }
                Console.WriteLine();
            }
        }
    }
}

引用返信 編集キー/
■45124 / inTopicNo.3)  Re[2]: XMLからのデータ取得について
□投稿者/ .SHO (1091回)-(2009/12/31(Thu) 08:27:27)
> 正直なにがわからんのかわからんです。

そして、どこまでわかってるのかもわからんですね。



引用返信 編集キー/
■45129 / inTopicNo.4)  Re[3]: XMLからのデータ取得について
□投稿者/ Bianchi (14回)-(2010/01/01(Fri) 00:19:50)
■επιστημη・.SHOさんへ

なるほどです。

私のXMLからのデータ取得が、selectNodeですべて取得した後に、配列格納処理をしてましたが、
指定したタグ名 → 指定した属性の値 取得
とする方法があったのですね。

ほんとですね。ご指摘いただくとなるほど、初歩の初歩すぎるないようでした。
問題解決にお力をいただきありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -