- PR -

属性から子ノードの取得

1
投稿者投稿内容
TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-24 18:37
C# XML勉強中の
TKです。
いつもお世話になっています。

以下のXML文書のid=34556の値をlistBox1に表示しているのですが
その値を選択したときに
<sub>Internet Explorer</sub>とweight="0.8"の値をlistBox2に
表示したいと思っています。
検索の方法などご存知の方いらっしゃいましたらご教授ください。


<thesaurus>
<expansion id=34556>
<sub weight="0.8">Internet Explorer</sub>
<sub weight="0.2">IE</sub>
<sub weight="0.9">IE5</sub>
</expansion>
<expansion id="0001">
<sub>outlook</sub>
<sub>Outlook</sub>
<sub>OL</sub>
<sub>ol</sub>
<sub>アウトルック</sub>
</expansion>
<expansion id="1234">
<sub weight="132"> r</sub>
<sub weight="14124"> ne</sub>
<sub weight="2"> ent</sub>
<sub weight="1"> en</sub>
<sub weight="1"> yeut</sub>
</expansion>
</thesaurus>
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-06-25 11:39
るぱんです。

XPathの問題ですね?

コード:
Set domnl_tempNodes = domnd_tempRoot.selectNodes(".//expansion[@id='34556']")
これをFor Each でループさせて

For Each domnd_temp In domnd_tempNodes
    str_temp = domnd_temp.selectSingleNode("./sub[@weight='0.8']/text()").Text
    ListBox.add str_temp
Next


こんな感じになると思います。
あ、VBで表現してます。適当に直して使ってくださいね。

For Eachが無いのであれば、

int_temp = domnl_tempNodes.Length (Integer型の値取得)
これをカウンターにして通常のForループにしてみてください。
TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-25 14:34
TKです。

るぱんさんお返事ありがとうございました。

さっそく試してみます。(__)

1

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