- PR -

XMLの要素取得に関して

1
投稿者投稿内容
YAMASOU
会議室デビュー日: 2006/10/16
投稿数: 13
お住まい・勤務地: 北海道
投稿日時: 2006-10-19 11:39
度々失礼致します。
YAMASOUと申します。

XMLの要素取得について
お聞きしたいことがございます。

【strXmlData】
<データ>
 <人物>
  <人名>山本</人名>
  <住所>北海道</住所>
 </人物>
 <人物>
  <人名>社員1</人名>
  <住所>宮城</住所>
 </人物>
 <人物>
  <人名>社員2</人名>
  <住所>鳥取</住所>
 </人物>
</データ>

上記のXMLにて
人名、住所をそれぞれ取得して配列に入れたいのですが
以下ソース

doc.LoadXml(strXmlData)
Dim root As XmlElement = doc.DocumentElement

Dim list As XmlNodeList = root.SelectNodes("/データ/人物")

でノードリスト取得後、
Forかなにかでループして取得したいのですが
よい方法が見つからず途方にくれております。

イメージとしては
Dim xNode As XmlNode
For Each xNode In list
 人名配列(i) = i番目の人名要素の値
 住所配列(i) = i番目の住所要素の値
 i = i + 1
Next

という感じで行いたいのですが・・・。

お忙しい中大変申し訳ありません、
この方法で実現が可能なのか?
また、値取得方法についてご教授のほどお願いできませんでしょうか?
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-10-19 12:42
.NET2005ですよね?

Forでの回し方はわかるんですよね?
XmlNodeから人名とか住所の取り方がわからないという前提で話します。
XmlNodeにSelectSingleNodeというメソッドがあるので
xNode.SelectSingleNode("人名").Valueとかで取れませんかね?
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2006-10-19 12:52
るぱんです。

listもっていて、配列に格納しなおす意味がわからないことはおいといて、
コード:
For xNode In list
    人名[i] = xNode.SelectSingleNode("人名").Value
Next


でもできるだろうし、
コード:
For i = 0 to list.childNodes.Length - 1
    Set xNode = list.get(i)
    人名[i] = xNode.SelectSingleNode("人名").Value
    i = i + 1
Next i


こんな感じでも取れるんじゃないかな?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-19 13:15
引用:

るぱんさんの書き込み (2006-10-19 12:52) より:

コード:

For i = 0 to list.childNodes.Length - 1
  Set xNode = list.get(i)
  人名[i] = xNode.SelectSingleNode("人名").Value
  i = i + 1
Next i




Coding Horror かも...w
'人名[i]' もコンパイル エラーだと思いますぃょぅ。(=゚ω゚)ノ

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
YAMASOU
会議室デビュー日: 2006/10/16
投稿数: 13
お住まい・勤務地: 北海道
投稿日時: 2006-10-19 13:22
お疲れ様です。
YAMASOUです。

>>Kazuki殿
環境も書かずに申し訳ありません。
VB.Net2003でした。
xNode.SelectSingleNode("人名").Value
で値を取得することに成功致しました。
ありがとうございます。

>>るぱん殿
コード記述まで書いて頂きありがとうございます。
前者の記述でこの度解決致しました。
ありがとうございます。


みなさまお忙しい中、このような質問を回答、閲覧して頂き
真にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)