Roe*_*ler 8 c# xml xmltextwriter writeelementstring
我正在使用XmlTextWriter
它的WriteElementString
方法,例如:
XmlTextWriter writer = new XmlTextWriter("filename.xml", null);
writer.WriteStartElement("User");
writer.WriteElementString("Username", inputUserName);
writer.WriteElementString("Email", inputEmail);
writer.WriteEndElement();
writer.Close();
Run Code Online (Sandbox Code Playgroud)
预期的XML输出是:
<User>
<Username>value</Username>
<Email>value</Email>
</User>
Run Code Online (Sandbox Code Playgroud)
但是,如果例如inputEmail为空,则得到结果XML,如下所示:
<User>
<Username>value</Username>
<Email/>
</User>
Run Code Online (Sandbox Code Playgroud)
而我希望它是:
<User>
<Username>value</Username>
<Email></Email>
</User>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?有没有办法以简单的方式使用XmlTextWriter
?实现我的预期结果?
Phi*_*ert 20
你的输出是正确的.没有内容的元素应该写成<tag/>
.
您可以通过调用WriteFullEndElement()强制使用完整标记
writer.WriteStartElement("Email");
writer.WriteString(inputEmail);
writer.WriteFullEndElement();
Run Code Online (Sandbox Code Playgroud)
<Email></Email>
当inputEmail为空时将输出.
如果您想多次执行此操作,可以创建一个扩展方法:
public static void WriteFullElementString(this XmlTextWriter writer,
string localName,
string value)
{
writer.WriteStartElement(localName);
writer.WriteString(value);
writer.WriteFullEndElement();
}
Run Code Online (Sandbox Code Playgroud)
然后你的代码将成为:
writer.WriteStartElement("User");
writer.WriteFullElementString("Username", inputUserName);
writer.WriteFullElementString("Email", inputEmail);
writer.WriteEndElement();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11689 次 |
最近记录: |