【发布时间】:2020-07-10 13:54:16
【问题描述】:
这是我的代码:
Dim xmlDoc As XmlDocument = New XmlDocument
Dim parNode As Xml.XmlNode
Dim newChild As Xml.XmlNode
xmlDoc.Load(TSProjectProjectLocation.ToString)
Dim elemList As XmlNodeList = xmlDoc.GetElementsByTagName("Synopsis")
Dim i As Integer = elemList.Count
parNode = xmlDoc.SelectSingleNode("/S2SProject/Synopsi")
newChild = xmlDoc.CreateNode(Xml.XmlNodeType.Element, "Synopsis", "")
parNode.AppendChild(newChild)
Dim id As XmlElement = xmlDoc.SelectSingleNode("/S2SProject/Synopsi/Synopsis")
id.SetAttribute("SynopsisID", i)
id.SetAttribute("SynopsisName", NewSynopsisName)
id.SetAttribute("SynopsisDateCreated", Now())
id.SetAttribute("SynopsisDateModified", Now())
id.SetAttribute("SynopsisRTF", "Synopsis : " & NewSynopsisName)
parNode.AppendChild(newChild)
xmlDoc.Save(TSProjectProjectLocation.ToString)
这给了我所需的结果:
<Synopsi>
<Synopsis SynopsisID="0" SynopsisName="TEST 1" SynopsisDateCreated="10/07/2020 15:43:29" SynopsisDateModified="10/07/2020 15:43:29" SynopsisRTF="Synopsis : TEST 1" />
</Synopsi>
当我第二次运行代码时,我希望看到:
<Synopsi>
<Synopsis SynopsisID="0" SynopsisName="TEST 1" SynopsisDateCreated="10/07/2020 15:43:29" SynopsisDateModified="10/07/2020 15:43:29" SynopsisRTF="Synopsis : TEST 1" />
<Synposis SynopisID="1"...
</Synopsi>
但我得到的是:
<Synopsi>
<Synopsis SynopsisID="1" SynopsisName="test 2" SynopsisDateCreated="10/07/2020 15:46:41" SynopsisDateModified="10/07/2020 15:46:41" SynopsisRTF="Synopsis : test 2" />
<Synopsis />
</Synopsi>
为什么我的代码重写了第一个概要?为什么它会用结束标签做这么有趣的事情?
【问题讨论】:
-
我认为这是因为您总是选择第一个节点而不是使用刚刚附加的节点(newChild)。 Dim id As XmlElement = xmlDoc.SelectSingleNode("/S2SProject/Synopsis/Synopsis")