我序列化XML字符串使用下面的代碼空字符串序列
StringReader newStringReader = new StringReader(value.Value);
try
{
using (var reader = XmlReader.Create(newStringReader))
{
newStringReader = null;
writer.WriteNode(reader, false);
}
}
finally
{
if (newStringReader != null)
newStringReader.Dispose();
}
但在寫XML文件我有
<property i:type="string">
<name>Test</name>
<value>
</value>
</property>
,但正確的是
<property i:type="string">
<name>Test</name>
<value></value>
</property>
因爲「value」屬性是一個空字符串。它被序列化的方式不是返回「\ r \ n」。
編劇:
XmlTextWriter writer = new XmlTextWriter(output);
try { writer.Formatting = System.Xml.Formatting.Indented;
writer.Indentation = 2; // Konfiguration sichern
WriteConfiguration(config, writer);
}
finally { writer.Close(); }
我做了什麼錯?
更新: 我寫了一個xml配置文件。值可以是int,bools等或其他xml字符串。這些XML字符串是用上面的代碼編寫的。它工作正常,除了XML字符串中的emtpy字符串元素。
更新2: 它工作,如果我手動更改我想寫的xml字符串。我通過
<tag/>
全部更換
<tag></tag>
Unfortunatley它不是一個真正的 「正確」 的解決方案來修改與正則表達式的字符串。
是的,對我來說問題可能在'value.Value'。什麼是價值? – digEmAll 2010-09-06 07:03:21
是的,value.Value中的字符串總是xml。它來自一個XML序列化器。該字符串不包含任何換行符。 – 2010-09-06 07:05:05