【发布时间】:2012-01-25 21:42:44
【问题描述】:
我想在我的 C# 代码中生成以下 xml 输出:
<?xml version="1.0" encoding="utf-16"?>
<CallConnectReq Xmlns="urn:interno-com:ns:a9c" reqId="9" msgNb="2">
<LocalCallId>0</LocalCallId>
</CallConnectReq>
现在我的实现方式如下:
var xnameSpace = new XmlSerializerNamespaces();
xnameSpace.Add("Xmlns", Constants.XmlNameSpaceValue);
var xmlSerializer = new XmlSerializer(objToSerialize.GetType());
var stringWriter = new StringWriter();
xmlSerializer.Serialize(stringWriter, objToSerialize, xnameSpace);
return stringWriter.ToString().**Replace("xmlns:","");**
但我想在不使用 Replace() 方法的情况下 删除 "xmlns:" 标记。 有什么办法吗?
【问题讨论】:
-
@deathrace - 类型是什么样的,当前的 xml 是什么样的?
-
@jgauffin(我之前的评论不正确,顺便说一句)——它肯定是 相关的,但获取默认命名空间的语法略有不同,需要对类型定义 - 足以分开,IMO
-
@deathrace 你真的不想要
Xmlns="...",原因很简单,不是有效的命名空间限定符;它必须是xmlns="..." -
如果我删除 .Replace() 方法,它会给出:
标签: c# xml xml-serialization