XMLの読込について
- 題名: XMLの読込について
- 著者: 新人PG
- 日時: 2008/09/02 10:25:17
- ID: 22889
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: XMLの読込について
- 著者: Hongliang
- 日時: 2008/09/02 11:11:08
- ID: 22891
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: XMLの読込について
- 著者: 新人PG
- 日時: 2008/09/02 11:20:07
- ID: 22893
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】
こんにちは。いつもお世話になっています。
現在VB.NETでXMLを読み込んでフォームに表示させるというプログラムを作成しております。その中でinnertextの使い方でよく分からない点があり教えていただけたらと思い投稿しました。
XMLの構造としては
(半角スラッシュでは投稿できなかったため全角/で書いています。)
<?xml version="1.0" encoding="utf-8"?>
</a>
</b bbb>
aaa
<a/>
と
<?xml version="1.0" encoding="utf-8"?>
<!-- コメント -->
</a>
<!-- コメント -->
</b bbb>
aaa
<a/>
と
<?xml version="1.0" encoding="utf-8"?>
<!-- コメント -->
</a>
aaa
<!-- コメント -->
</b bbb>
<a/>
の3種類ありaaaだけを取得して表示させたいのですが、aをinnertextで取得すると必要の無いbbbの部分がのあるaaabbbという文字列が取得してしまいます。またaのnode.childnodes(0).innertextなどの決めうちをする場合、上記の例では3種類を判別すれば可能ではあると思いますが、複雑化した場合に対応できなくなると考えています。複数の子を持つ親の要素の値だけを取得するにはどのようにしたらよいのでしょうか?
Dim xmlDoc As New System.Xml.XmlDocument
'XMLファイルを読み込む
xmlDoc.Load("C:\Work\Test.xml")
'ルート要素を取得する
Dim rootElement As System.Xml.XmlElement = xmlDoc.DocumentElement
'aタグのNodeListを取得する
Dim node As System.Xml.XmlNodeList = rootElement.GetElementsByTagName("a")
'指定したタグが存在するか?
If node.Count Then
'指定したタグが存在したのでInnerTextプロパティで値を取得する
Console.WriteLine(node.Item(0).InnerText)
End If
aaabbbが表示されました。
Dim xmlDoc As New System.Xml.XmlDocument
'XMLファイルを読み込む
xmlDoc.Load("C:\Work\Test.xml")
'ルート要素を取得する
Dim rootElement As System.Xml.XmlElement = xmlDoc.DocumentElement
'aタグのNodeListを取得する
Dim node As System.Xml.XmlNodeList = rootElement.GetElementsByTagName("a")
'指定したタグが存在するか?
If node.Item(0).HasChildNodes Then
'指定したタグが存在したのでInnerTextプロパティで値を取得する
Console.WriteLine(node.Item(0).ChildNodes(0).InnerText)
End If
このように決め打ちした場合
コメントが表示されたり、aaaだけが表示されたり、bbbが表示されました。
【解決するために何をしたか】
Googleなどで検索しましたがこういう構造のXMLの物は発見できませんでした。
ヘルプなどを参照して見ましたが、いまいちピンときませんでした。
お忙しいところ申し訳ありません。
よろしくお願いいたします。