我目前有这个XML架构:
<PSC5>
<POI_ORI>
<CIT>LIM</CIT>
</POI_ORI>
</PSC5>
如果用户想要添加新选项,则最终架构将为:
<PSC5>
<OPT>132<OPT>
<POI_ORI>
<CIT>LIM</CIT>
</POI_ORI>
</PSC5>
如果不是这样的话:
<PSC5>
<POI_ORI>
<CIT>string</CIT>
</POI_ORI>
</PSC5>
我正在使用以下代码段:
Dim oXMLDocument As New XmlDocument
oXMLDocument.Load(strFileSchemaAWEB)
Dim oNavigator As XPath.XPathNavigator = oXMLDocument.CreateNavigator()
If not dtbParameters.Rows( 0 ).Item(5).equals("") Then
oNavigator.AppendChild("<OPT>16</OPT>")
当我尝试生成第二个XML Schemma时,它会在AppendChild上抛出异常:
this document already has a 'DocumentElement' node.
我正在使用VB.NET Framework 2.0
感谢您的帮助,
答案 0 :(得分:1)
在XmlDocument
的根节点上创建导航器Dim root as XmlElement = oXMLDocument.DocumentElement
Dim oNavigator As XPath.XPathNavigator = root.CreateNavigator()
答案 1 :(得分:0)
该问题与可选节点无关,方法是以XML变为无效的方式添加节点(多个DocumentElement)。
尝试将您的节点添加到您想要的位置 您需要将导航器对象移动到要添加节点的位置 在此处阅读:AppendChildElement
答案 2 :(得分:0)
试试这个:
If Not dtbParameters.Rows( 0 ).Item(5).equals("") Then
oXMLDocument.SelectSingleNode("/PSC5").AppendChild( _
oXMLDocument.CreateElement("OPT")).InnerText = "16"
End If
HTH