アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005、XMLの初心者です。

VB2005でXMLデータを読み取って、DBに登録するプログラムを作っています。
XMLデータから項目を読み取るのは、下記のようにパスを指定してできることが分りました。

CreatorInfodNode = xmlDoc.SelectNodes("/Mml/Body/Module", nsmgr1)
ID = CreatorInfodNode(0).InnerText.Trim

しかし、下記のような同じ要素が複数あるXMLデータの場合、全ての要素を解析してDBに登録したいのですが、要素の数はどうやって読み取れば良いのでしょうか。ちなみに、要素の数は可変です。
上記のパスを指定する場合、要素のタグが同じなら全てパスは同じになり、最初の要素を取ってくるようですが、複数ある場合は全てを解析したいです。

<Mml>
<Body>
<Module>A</Module>
<Module>B</Module>
<Module>C</Module>
</Body>
</Mml>

何かヒントになるようなことでも良いので、皆様の知恵をお借りできれば幸いです。
よろしくお願い致します。

A 回答 (2件)

SelectNodesで取得したのはXmlNodeListですから Countプロパティが存在します


dim ID() as String
redim ID( CreateInfoNode.Count - 1)
for n=0 to CreateInfoNode.Count - 1
  ID(n) = CreateInfoNode(n).InnerText
Next
と言った具合で取得可能なのでは …
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
教えていただいたCountプロパティで取得できました。
ありがとうございました。

ちなみに、取得したCreatorInfodNode(n)の中の属性を取得したい場合は、どうすれば良いかご存知でしょうか。
例えば、下記XMLの場合、属性Typeによって後続の処理が異なるため、CreatorInfodNode(n)に取得してから属性Typeを取得したいのですが、どうすれば良いのでしょうか。

<Mml>
<Body>
<Module type=1>A</Module>
<Module type=1>B</Module>
<Module type=2>C</Module>
</Body>
</Mml>

追加で申し訳ありませんが、ご存知でしたら教えていただけたら幸いです。

お礼日時:2007/11/06 18:21

CreateInfoNode(n)が XmlNodeなので これのAttributesコレクションを見れば 属性指定があるかどうかの判断できそうです



CreateInfoNode(n).Attributes.Countが1以上であれば何かの属性つきだと判断できますよね
    • good
    • 0
この回答へのお礼

度々のお返事、本当にありがとうございます。

教えていただいたAttributesコレクションでできました。
初歩的な質問でしたが、ありがとうございました。

お礼日時:2007/11/07 15:39

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