我使用XmlDocument
和XmlElement
打造,看起來像一個簡單的(但大)的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
是否可以將文檔保存到文件 – volody 2010-05-07 17:21:53
您可以提供一些實際的xml構建代碼嗎? outerXML是否也返回null? – curtisk 2010-05-07 17:29:17
@curtisk在上面的問題中增加了一些代碼。是的,'OuterXml'也是空的。 – 2010-05-07 17:44:38