在每个函数调用上向XML添加新的子节点

时间:2012-05-12 06:49:58

标签: asp.net xml vb.net

我有一个XML文件,我有一个函数,这个XML作为字符串传递。我已经在Xmldocument中加载了这个字符串,我需要在一个节点下插入几个子节点。此函数返回修改后的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

1 个答案:

答案 0 :(得分:0)

您没有显示足够的代码来确定确切的问题。您要替换哪个节点? featuresElement来自哪里?以下是一些答案:

  1. 是的,您需要使用新文档替换整个文件。
  2. 您无需使用新节点替换节点。只需将目标节点传递给您的函数即可。该函数应调用父节点上的appendChild()来添加子节点。
  3. 当您将文档写入文件example时,它将具有新节点。