【问题标题】:adding new child nodes to XML on each function call在每个函数调用上向 XML 添加新的子节点
【发布时间】:2012-05-12 06:49:58
【问题描述】:

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

【问题讨论】:

    标签: asp.net xml vb.net


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2018-09-16
      • 2021-01-11
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      相关资源
      最近更新 更多