我正在加载一些包含以下元素的XML:
<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:"
部分未进行序列化。
我该如何纠正?
答案 0 :(得分:3)
使用获取命名空间的重载版本:
doc.CreateElement("o:Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd")