C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
(過去ログ 74 を表示中)
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
■43516
/ )
Re[3]: vbでxml出力
□投稿者/ 魔界の仮面弁士
(1383回)-(2009/11/11(Wed) 20:46:06)
2009/11/11(Wed) 22:41:17 編集(投稿者)
■
No43513
(まきお さん) に返信
>>
http://questionbox.jp.msn.com/qa4226645.html
> 変更するということがうまくわからず断念したので
元のコードは、名前空間を指定するために
Set xmlAttr = xmlNode.Attributes.setNamedItem(xmlDoc.createAttribute("xmlns"))
xmlAttr.nodeValue = "
http://www.example.com/"
としてエラーとなっていますが、これは、属性ノードを要素ノードに追加してから、
その後で属性値を変更しようとしているためです。
この場合正しくは、
Set xmlAttr = xmlDoc.createAttribute("xmlns")
xmlAttr.nodeValue = "
http://www.example.com/"
xmlNode.Attributes.setNamedItem xmlAttr
のように、まず、属性ノードに属性値をセットし終わってから、
要素ノードに追加するようにします。
> <root xmlns="
http://www.
・・・"
> xmlns:xsi="
http://www.
・・・"
> xsi:schemaLocation="
http://www.
・・・">
> としたいのですが。
たとえば、以下のように記述すれば OK です。
Set xmlNode = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "root", "
http://www.example.com/"
))
Set xmlAttr = xmlDoc.createNode(NODE_ATTRIBUTE, "xsi:schemaLocation", "
http://www.example.net/"
)
xmlNode.Attributes.setNamedItem(xmlAttr).nodeValue = "
http://www.yahoo.com/"
やろうと思えば、上記を一行で書くこともできますが…流石にこれでは読みにくいですね。
xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "root", "
http://www.example.com/"
)).Attributes.setNamedItem(xmlDoc.createNode(NODE_ATTRIBUTE, "xsi:schemaLocation", "
http://www.example.net/"
)).nodeValue = "
http://www.yahoo.com/"
ところで、今回の質問は
>>> 分類:[.NET 全般]
として投稿されていましたが、実際には .NET に関する話題ではありませんよね。
Excel VBA に関する内容であれば、[Microsoft Office 全般] か [VB6 以前] あたりが
適当かと思います。次回投稿時には、分類の選択もお忘れなく。
返信
編集キー/
編集
管理者用
-
Child Tree
-