あなたがそれをしたい場所AppendChild
でそれを追加し、要素を作成します。
Dim newElem As XmlElement = doc.CreateElement("Option")
doc.SelectSingleNode("/Content/Catalog/Feature[7]").AppendChild(newElem)
UPDATE
をそれはあなたがやりたいと思っているものはまだ完全には明らかではないのですが、あなたがしたい場合最後の既存の<Option>
の後に新しい<Option>
要素を挿入すると、このようなものが開始になりますが、これはいかに面倒であるかを示していると思います(ただし、g新しいオプションを作成する)!
Dim newOption = doc.CreateElement("Option")
newOption.SetAttribute("code", "ZZZ")
Dim displayName = doc.CreateElement("DisplayName")
displayName.SetAttribute("lang", "en-US")
displayName.AppendChild(doc.CreateCDataSection("This is a test"))
newOption.AppendChild(displayName)
Dim feature = doc.SelectSingleNode("/Content/Catalog/Feature[7]")
Dim lastOption = feature.SelectSingleNode("Option[last()]")
feature.InsertAfter(newOption, lastOption)
@dbasnettと同じように、私はXMLにXDocument
/XElement
とLINQを好むだろう。私は多くのXMLを操作するためのXElementを使用して好む
Dim doc = XDocument.Load("paf.xml")
doc.<Content>.<Catalog>.<Feature>(6).<Option>.Last().AddAfterSelf(
<Option code="ZZZ">
<DisplayName lang="en-US"><![CDATA[This is a test]]></DisplayName>
<Multimedia type="MediumImage"><![CDATA[Multimedia\Pictures\Medium\SherwinWilliams.jpg]]></Multimedia>
<Multimedia type="LargeImage"><![CDATA[Multimedia\Pictures\Large\SherwinWilliams.jpg]]></Multimedia>
<CustomData><![CDATA[<xml>
<RECKEY code="010201650004001V" />
<VARProp VarID="1237" PropID="Expression" Expr="SHERW" />
<VARProp VarID="3518" PropID="Expression" Expr="SHERW" />
<VARProp VarID="3580" PropID="Expression" Expr="SHERW" />
<VARProp VarID="2149" PropID="VariableType" Expr="104" />
</xml>]]></CustomData>
</Option>
)
お返事ありがとうございます。なぜこれが機能していないのか分かりませんが、xmlファイルのフォーマットも混乱しているようです。 多分私は明確にすることができます: 私はこれを持っています: //コンテンツ/カタログ/機能[7] /オプション[1]/code = ABC //コンテンツ/カタログ/機能[7] /オプション[2]/code = DEF ... etc to Option [68] 追加したいと思います: //コンテンツ/カタログ/機能[7] /オプション[1]/code = ZZZ ちなみに "code"は属性です問題) ご協力いただきありがとうございます。 – kman
@kmanあなたが達成しようとしていることを示すために質問を更新すると助けになります。XMLの例の前後に、必要なものとその動作の仕方を示します。 – Mark
メッセージを更新しました。 ここに第2の画像リンクがあります: [link] http://www.kwhdesign.ca/Temp/AfterCode.jpg – kman