2012-05-12 18 views
0

私はXMLファイルを持っており、このXMLが文字列として渡される関数を持っています。私はこの文字列をXmldocumentにロードしており、1つのノードの下に少数の子ノードを挿入する必要があります。この関数は、変更されたXML文字列を返します。この関数が呼び出されるたびに新しい子ノードが追加され、現在は子ノードが一度追加されています。各関数呼び出しで新しい子ノードをXMLに追加する

XMLファイルを上書きする必要はありますか?そうであれば、ノードを新しいノード(新しい子ノードを追加したもの)に置き換えて、関数が再び呼び出される前に子ノードが追加されるようにするにはどうすればよいですか?

Dim doc As New XmlDocument 
doc.LoadXml(applicationXml) 
Dim parentNode As XmlNode = doc.GetElementsByTagName("prList").Item(0) 

Dim newElement As XmlNode = doc.CreateNode(XmlNodeType.Element, "gate.util.persistence.LanguageAnalyserPersistence", Nothing) 

Dim runtimeParamsElement As XmlNode = doc.CreateNode(XmlNodeType.Element, "runtimeParams", Nothing) 
Dim xa As XmlAttribute = doc.CreateAttribute("class") 
xa.Value = "gate.util.persistence.MapPersistence" 
runtimeParamsElement.Attributes.Append(xa) 

localMapElement = doc.CreateNode(XmlNodeType.Element, "localMap", Nothing) 
featuresElement.AppendChild(localMapElement) 

newElement.AppendChild(featuresElement) 

Return doc.InnerXml 

答えて

0

あなたは、正確な問題を決定するのに十分なコードを示していません。

私のコードは次のようになります。どのノードを置き換えようとしていますか? featuresElementはどこから来たのですか?いくつかの回答があります:

  1. はい、新しい文書を使用してファイル全体を置き換える必要があります。
  2. ノードを新しいノードに置き換える必要はありません。ターゲットノードを関数に渡すだけです。この関数は親ノードのappendChild()を呼び出して子を追加する必要があります。
  3. 文書をファイルに書き込むときは、exampleに新しいノードが作成されます。
関連する問題