2014-01-28 188 views
0

我加載一些XML其中包含以下元素:XML標籤前綴不命名空間添加到XmlDocument的

<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
</o:Security> 

如下:

var doc = new XmlDocument(...); 

我再繼續創建某些元素和插入在Security元素如下:

var userNameTokenElement = doc.CreateElement("o:UsernameToken"); 
var userNameElement = doc.CreateElement("o:Username"); 
... 
... 
userNameTokenElement.AppendChild(userNameElement); 
var securityElement = (XmlElement) doc.GetElementsByTagName("o:Security").Item(0); 
securityElement.AppendChild(userNameTokenElement); 

然後我試圖寫的實況彪流如下:

var stream = new MemoryStream(); 
doc.Save(stream); 

,但是標籤名稱的"o:"部分沒有得到序列化。

我該如何解決這個問題?

回答

3

使用重載版本,它得到一個命名空間:

doc.CreateElement("o:Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd") 
+1

參見http://www.w3.org/DOM/faq.html#create C#名稱的操作方式稍有不同,但答案仍然正確。 – keshlam

相關問題