- PR -

XMLファイルから属性の値だけを取り出したいのですが

投稿者投稿内容
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-25 19:23
脳味噌筋肉です。

以下のようなXMLファイルを対象として

<?xml version="1.0" encoding="Shift_JIS"?>
<世界の指導者>
<指導者ID="1">
<名前>小泉J一郎</名前>
<備考>日本</備考>
</指導者ID>
<指導者ID="2">
<名前>Bシュ</名前>
<備考>米国</備考>
</指導者ID>
</世界の指導者>

指導者IDの値だけ取り出したく以下のようなコードを書きました。

Dim Attr As XmlAttributeCollection = Doc.DocumentElement.Attributes
Dim IEnumID As IEnumerator = Attr.GetEnumerator()
While (IEnumID.MoveNext())
Dim AttrID As XmlAttribute
AttrID = CType(IEnumID.Current, XmlNode)
MessageBox.Show(AttrID.Value)
End While

Attr.GetEnumerator()でうまく取得できていないのですが、何がマズいのか
よく分かっておりません(^^;

識者の方、ご指摘頂ければ幸いです。
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2004-11-25 19:49
その前にこれって整形式のXMLになってます?
<指導者 ID="1">
</指導者>
ていうことでしょうか?



[ メッセージ編集済み 編集者: karajan 編集日時 2004-11-25 19:51 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-25 21:14
諸農です。

Enumeratorにこだわりがないのでしたら、
XmlDocument.SelectNodes()でもいいかもしれませんね。
SDKにサンプルがあるので参考にしてください。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-26 13:49
karajanさん、jubeiさん

レスありがとうございます。
早速試してみます。
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-29 10:46
脳味噌筋肉です。
SelectNodesのサンプルをたよりに以下のコードを書いてみました。
結果は思うようにいかず(指導者ID取得できず)

Dim Doc As New XmlDocument
Doc.Load("dora.xml")
Dim Root As XmlElement = Doc.DocumentElement

Dim NodeList As XmlNodeList
NodeList = Root.SelectNodes("/世界の指導者/@指導者ID")
Dim Node As XmlNode
For Each Node In NodeList
MessageBox.Show(Node.Value.ToString)
Next

識者の方、私の書いたコードのどこがマズいのかご指摘頂きたくお願いします。
SelectNodesに渡す文字列がこれで正しいのか自信ないんですが。。。
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-29 10:50
失礼しました。

引用:

コード:
        Doc.Load("dora.xml")





このXMLファイルは

コード:
<?xml version="1.0" encoding="Shift_JIS"?> 
<世界の指導者> 
    <指導者ID="1"> 
        <名前>小泉J一郎</名前> 
        <備考>日本</備考> 
    </指導者> 
    <指導者ID="2"> 
        <名前>Bシュ</名前> 
        <備考>米国</備考> 
    </指導者> 
</世界の指導者> 



こうなっております。
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-11-29 10:51
失礼しました。

引用:

コード:
        Doc.Load("dora.xml")





このXMLファイルは

コード:
<?xml version="1.0" encoding="Shift_JIS"?> 
<世界の指導者> 
    <指導者ID="1"> 
        <名前>小泉J一郎</名前> 
        <備考>日本</備考> 
    </指導者> 
    <指導者ID="2"> 
        <名前>Bシュ</名前> 
        <備考>米国</備考> 
    </指導者> 
</世界の指導者> 



こうなっております。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-29 11:08
こんにちは。

<指導者ID="1">
ではなくて
<指導者 ID="1">
ということですよね。

でしたら

Dim Doc As New XmlDocument
Dim As idNode As XmlNodeList

Doc.Load("dora.xml")

idNode = Doc.SelectNodes("世界の指導者/指導者/@ID")

で取得できます。

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