- PR -

指定した個所からのXML読み込み

1
投稿者投稿内容
むっく
会議室デビュー日: 2007/11/03
投稿数: 18
投稿日時: 2008-05-06 19:25
XMLファイルを読み込み,バッファなどに蓄積しておき,
ノードを指定して,指定したノード以下の内容を処理していく
プログラムをVBで作成したいと思います.
即座に指定したノードの場所まで移動し,処理を行いたいのです.

XPathNavigatorクラスのMoveToメソッドを使用すれば,
指定したノードに移動し,そこから以下のノードについて
処理をしていくことができるのではないかと思っているのですが,
その場合ですと,指定するノードのリストに合わせて
事前に対応するXPathNavigatorをすべて用意しておく必要があるのかなと
思いまして,それでは冗長かなと悩んでいます.

-----
Dim docNav As XPathDocument = New XPathDocument("XMLのファイルパス")
Dim nav As XPathNavigator = docNav.CreateNavigator
nav.MoveTo("予め設定した別のXPathNavigator")←指定する予定のノードに対してすべて用意する必要がある.
-----

XMLファイルを読み込み,バッファなどに蓄積しておき,
ノードを指定して,指定したノード以下の内容を処理していけるような
プログラムについて,どのようなクラスやメソッドを使ったらよいのでしょうか.
教えていただきたくおもいます.
よろしくお願いします.
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2008-05-06 21:15
たとえばDOMでやるとか。
むっく
会議室デビュー日: 2007/11/03
投稿数: 18
投稿日時: 2008-05-06 21:27
Anthyhimeさん,返信ありがとうございます.
DOMというと,XmlDocumentになるんでしょうか?
たしかに,指定したノードについては取得できそうなんですが..
たとえば,下のようなXMLがあったとします.

<test>
<test1>aaaa</test1>
<test2>bbbb</test2>
<test3>cccc</test3>
</test>

このとき, GetElementsByTagName(test1)を指定することによって,
<test1>aaaa</test1>の内容は取得できるかと思います.
やりたいこととしては,test1を指定したら,
そのあとのtest2,test3まで取得したいんです.
つまり,指定したノードから,XMLの最後の要素までです.

伝わりにくい文章ですみません.
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2008-05-06 21:53
子要素の列挙なら、XPathNavigator.Select や XmlDocument.SelectNodes を使えばいいんじゃないですか。
むっく
会議室デビュー日: 2007/11/03
投稿数: 18
投稿日時: 2008-05-09 23:02
Hongliangさん,返信ありがとうございます.

こちらの返信が遅くなってしまいすみません.

XmlDocument.SelectNodesとループを組み合わせて,
無事目的のことを行うことができました.
ご意見をいただきまして,ありがとうございました.
1

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