2009-10-15 6 views
0

J'ai actuellement ce schéma XML:Ajout d'un nouveau nœud en option sur XML

<PSC5> 
    <POI_ORI> 
    <CIT>LIM</CIT> 
    </POI_ORI> 
</PSC5> 

si l'utilisateur veut ajouter une nouvelle option, le schéma final est de:

<PSC5> 
    <OPT>132<OPT> 
    <POI_ORI> 
    <CIT>LIM</CIT> 
    </POI_ORI> 
</PSC5> 

sinon continuez comme :

<PSC5> 
    <POI_ORI> 
    <CIT>string</CIT> 
    </POI_ORI> 
</PSC5> 

Im en utilisant l'extrait suivant:

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>") 

il me jette une exception sur AppendChild, lorsque je tente de générer le deuxième XML Schemma:

this document already has a 'DocumentElement' node. 

Im en utilisant le framework 2.0 VB.NET

Merci pour l'aide,

Répondre

1

créer le navigateur sur le nœud racine de votre XmlDocument

Dim root as XmlElement = oXMLDocument.DocumentElement 
Dim oNavigator As XPath.XPathNavigator = root.CreateNavigator() 
0

Les Le problème n'a rien à voir avec le nœud étant facultatif, en ajoutant un nœud de la même manière que le XML devient invalide (Multiple DocumentElement).

Essayez d'ajouter votre noeud à l'emplacement souhaité.
Vous devez déplacer l'objet de navigation à l'endroit où vous souhaitez ajouter le noeud.
Lire à ce sujet ici: AppendChildElement

0

Essayez ceci:

If Not dtbParameters.Rows(0).Item(5).equals("") Then 

    oXMLDocument.SelectSingleNode("/PSC5").AppendChild(_ 
     oXMLDocument.CreateElement("OPT")).InnerText = "16" 

End If 

HTH

Questions connexes