XML形式の文字列Stringを使ってxmlNodeを追加したい
- 題名: XML形式の文字列Stringを使ってxmlNodeを追加したい
- 著者: ふるふる
- 日時: 2012/07/02 16:52:58
- ID: 30672
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: XML形式の文字列Stringを使ってxmlNodeを追加したい
- 著者: Hongliang
- 日時: 2012/07/02 21:05:10
- ID: 30674
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: XML形式の文字列Stringを使ってxmlNodeを追加したい
- 著者: ふるふる
- 日時: 2012/07/03 11:25:55
- ID: 30678
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
今あるXmlDocumentにXML文字列を使って新規ノードを追加したいです。 Private Sub AddNode(ByVal NodeName As String) Dim ParentNodes As XmlNodeList = myXML.GetElementsByTagName("mtc:tests") 'myXMLは現在あるXMLDocumentです。 'pNodeは追加する親ノードになります。 Dim pNode As XmlNode = ParentNodes(0) '新規にnewNodeを作ります。 Dim newNode As XmlNode = myXML.CreateElement("mtc:test", myXML.GetNamespaceOfPrefix("mtc")) '・・・(1) 'アトリビュートを追加します。 Dim attrClass As XmlAttribute = myXML.CreateAttribute("mtc:class") attrClass.Value = NodeName '引数でmtc:classの値を設定します。 Dim attrVersion As XmlAttribute = myXML.CreateAttribute("mtc:version") attrVersion.Value = "1.0" newNode.Attributes.Append(attrClass) newNode.Attributes.Append(attrVersion) '引数の名前でXMLの文字列を取り込み、innerXMLにセットします。 newNode.InnerXml = getTestXML(NodeName) End Sub Function getTestXML(NodeName) As String Dim s As String = "" s += "<mtc:values mtc:class=""attributes"">" s += " <mtc:value mtc:class=""target"" />" s += "</mtc:values>" s += "<mtc:tables mtc:class=""result"">" s += "<mtc:table mtc:class=""" & NodeName & """" mtc:index=""0"">" s += " <mtc:columns mtc:class=""result"">" s += " <mtc:colums mtc:class="username" mtc:columnkey=""1"" /> s += " <mtc:colums mtc:class="useraddr" mtc:columnkey=""2"" /> '・・・いろいろ続く。テーブルレイアウトのイメージ s += " <mtc:rows mtc:class=""result"" />" s += "</mtc:table>" getTestXML = s End Function 実行すると、 newNode.InnerXml = getTestXML(NodeName) の行でエラーになり、 {"'mtc' is an undeclared namespace. Line 1, position 2."} のメッセージを得ます。"mtc"のnamespaceは myXML上に設定されています。 (1)の行で追加したいxmlNodeに(myXML.GetNamespaceOfPrefix("mtc")を設定していてもだめみたいです。 どうすればXML文字列からxmlNodeを作り、親のxmlNodeに追加することができるでしょうか?