- - PR -
xml書き込みにて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-26 11:41
vs2005,vb
いつも、拝見しています。 1つ、ご教授願いたい点があります。 xmlに要素を追加し、その要素に子要素を追加したいのです。 Dim xDoc As New XmlDocument Dim xmlRoot As System.Xml.XmlElement = xDoc.DocumentElement Dim xmlElem As System.Xml.XmlElement xmlElem = xDoc.CreateElement("printer") xmlElem.SetAttribute("name", 名前) xmlElem.IsEmpty = False xmlRoot.AppendChild(xmlElem) Dim ageElement As XmlElement = xDoc.CreateElement("PName") xmlRoot.AppendChild(ageElement) ageElement.InnerText = "17" と、コーディングしているのですが、xml書き込み結果は <printer name="名前"> </printer> <PName>17</PName> と表示されてしまします。 <printer name="名前"> <PName>17</PName> </printer> 上記のように間に入れたいのですが、各AppendChildの場所とかが違うのでしょうか? いろいろ、変えてみたのですが、上にいったり、下にいったりで、中には入ってくれません。 初歩的な質問かもしれませんが、ご教授お願いいたします。 | ||||
|
投稿日時: 2006-07-26 11:51
2つともルートノードに追加しているからそうなります。 VBの書き方は知りませんがなんとなく × xmlRoot.AppendChild(ageElement) ○ xmlElem.AppendChild(ageElement) だと思いますけどどうでしょう。 _________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ | ||||
|
投稿日時: 2006-07-26 11:55
こんにちは。
とりあえず、パッと見ですが。 ここをよーく見てみてください。 声に出して読んでみたりすると効果大。 xmlRoot.AppendChild(ageElement) # と書いていたら想馬さんにズバリ答えを書かれていた罠 _| ̄|○ _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||
|
投稿日時: 2006-07-26 11:55
想馬さん、返信ありがとうございます。
xmlElem.AppendChild(ageElement) と変更したところ、 <printer name="名前"> <PName>17</PName> </printer> と、なりました。 xmlRootとxmlElemの違いだったのですね。単純ですが、結構なやんでしまいました。 もう一度、ヘルプ等で意味を見直します。 ありがとうございました。 | ||||
|
投稿日時: 2006-07-26 13:08
AppendChild(言語によってはappendChild)はそのノードの子として追加するノードを引数で与えます。printerノードの子としてPNameノードを追加するのであれば、
printerノード.AppendChild( PNameノード ) とします。ようするに、 親になるノード.AppendChild( 子ノード ) です。 _________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ | ||||
|
投稿日時: 2006-07-28 18:05
想馬さん、返事おくれて、すいません。
自分のパターンですと xmlElemが親で、新しくCreateElementしたageElement(子)を渡してあげる感じですね。 イメージがつかめました。 ありがとうございました。 |
1