0

我有一个 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
4

1 回答 1

0

您没有显示足够的代码来确定确切的问题。您要替换哪个节点?featuresElement 是从哪里来的?这里有几个答案:

  1. 是的,您需要使用新文档替换整个文件。
  2. 您无需将节点替换为新节点。只需将目标节点传递给您的函数。该函数应在父节点上调用 appendChild() 来添加子节点。
  3. 当您将文档写入文件时,例如,它将具有新节点。
于 2012-05-12T08:14:06.060 回答