2010-05-07 55 views
1

我使用XmlDocumentXmlElement打造,看起來像一個簡單的(但大)的XML文檔:XmlDocument.InnerXml是空的,但的innerText不是

​​

我的問題是,當我完成構建XML後,XmlDocument.InnerXml爲空,但InnerText仍顯示所有子節點的所有文本。

有沒有人見過這樣的問題?什麼樣的輸入數據會導致這些症狀?我期望XmlDocument只是拋出一個異常,如果它給了不好的數據。

注意:我很確定這與輸入數據有關,因爲我只能對某些數據集進行重現。我也嘗試用SecurityElement.Escape轉義數據,但沒有任何區別。

編輯 下面是我使用來構建XML代碼:

Private Function BuildXml(widgets as ICollection(Of MyNamespace.Widget)) As String 
    Dim xDoc As New XmlDocument 
    Dim parentNode As XmlElement = xDoc.CreateElement("Widgets") 
    xDoc.AppendChild(parentNode) 

    For Each w as Widget in widgets 
     Dim widgetNode As XmlElement = xDoc.CreateElement("Widget") 
     widgetNode.AppendChild(CreateElement(xDoc, w.Stuff, "Stuff")) 
     // lots more... 
     parentNode.AppendChild(widgetNode) 
    Next 

    Return xDoc.OuterXml 
End Function 

Private Function CreateElement(ByVal xDoc As XmlDocument, ByVal value As String, ByVal elementName As String) As XmlElement 
    Dim element As XmlElement = xDoc.CreateElement(elementName) 
    element.InnerText = System.Security.SecurityElement.Escape(value) 

    Return element 
End Function 
+0

是否可以將文檔保存到文件 – volody 2010-05-07 17:21:53

+1

您可以提供一些實際的xml構建代碼嗎? outerXML是否也返回null? – curtisk 2010-05-07 17:29:17

+0

@curtisk在上面的問題中增加了一些代碼。是的,'OuterXml'也是空的。 – 2010-05-07 17:44:38

回答

0

你試過正火的XMLDocument你的所有元素添加後試圖讀取InnerXml或OuterXML過嗎?

+0

我剛剛遇到同樣的問題 - 也標準化文件第一,但沒有賓果。 XDocument雖然做了正確的事情。 – 2013-06-25 11:59:45

+0

實際上解決方案是使用InnerText - 值不合適。 – 2013-06-25 12:14:03

相關問題