2016-09-24 2 views
0

Ich versuche, Dokumentelement zu dem, was ich das Stammelement sein möchte. Wenn ich dies versuche, erhalte ich den folgenden Fehler: Die Eigenschaft 'DocumentElement' ist schreibgeschützt. Ich denke, das macht Sinn. Ich versuche gerade, msxml in system.xml zu konvertieren.Problemeinstellung DocumentElement

Public Function GetXmlAllHierarchyObjects(Optional ByVal blnHideDisabled As Boolean = False) As XmlDocument 

    Dim recHierarchy As Recordset 
    Dim strSql As String = "" 
    Dim xmlDoc As XmlDocument = New XmlDocument() 
    Dim xmlRoot As XmlElement 
    Dim xmlParent As XmlNode 
    Dim intHeight As Integer 
    Dim xmlHierarchy As XmlElement 

    xmlRoot = xmlDoc.CreateElement("Hierarchy") 
    xmlDoc.DocumentElement = xmlRoot ' Error occurs here 
    recHierarchy = GetAllHierarchyObjects(blnHideDisabled, True) 

    Do While Not recHierarchy.EOF 
     xmlParent = xmlDoc.selectSingleNode("//Object[@ID='" & CStrSafe(recHierarchy("ParentID")) & "']") 
     If xmlParent Is Nothing Then 
      xmlParent = xmlRoot 
      intHeight = 0 
     Else 
      intHeight = CIntSafe(xmlParent.SelectSingleNode("Height").InnerText) + 1 
     End If 

     xmlHierarchy = xmlDoc.createElement("Object") 
     xmlParent.appendChild(xmlHierarchy) 

     xmlHierarchy.SetAttribute("ID", recHierarchy("ObjectID").ToString()) 

     xmlHierarchy.appendChild(xmlDoc.createElement("Height")) 
     xmlHierarchy.LastChild.InnerText = CStrSafe(intHeight) 

     xmlHierarchy.appendChild(xmlDoc.createElement("ParentID")) 
     xmlHierarchy.LastChild.InnerText = CStrSafe(recHierarchy("ParentID")) 
     xmlHierarchy.appendChild(xmlDoc.createElement("Name")) 
     xmlHierarchy.LastChild.InnerText = CStrSafe(recHierarchy("Name")) 

     recHierarchy.MoveNext() 
    Loop 

    CloseRecordset(recHierarchy) 

    GetXmlAllHierarchyObjects = xmlDoc 

End Function 

Antwort

1

Das Dokumentelement ist nicht wirklich der Stammknoten. Es ist eine Ebene über der Wurzel. Also fügst du deinen Wurzelknoten als Kind dazu.

Dim xmlDoc As XmlDocument = New XmlDocument() 
    Dim xmlRoot As XmlElement = xmlDoc.CreateElement("Hierarchy") 
    xmlDoc.AppendChild(xmlRoot) 
    MsgBox(xmlDoc.OuterXml) 
Verwandte Themen