- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 XmlTextWriter
及其 WriteElementString
方法,例如:
XmlTextWriter writer = new XmlTextWriter("filename.xml", null);
writer.WriteStartElement("User");
writer.WriteElementString("Username", inputUserName);
writer.WriteElementString("Email", inputEmail);
writer.WriteEndElement();
writer.Close();
预期的 XML 输出是:
<User>
<Username>value</Username>
<Email>value</Email>
</User>
但是,如果例如 inputEmail 为空,我得到的结果 XML 如下:
<User>
<Username>value</Username>
<Email/>
</User>
而我希望它是:
<User>
<Username>value</Username>
<Email></Email>
</User>
我做错了什么?有没有一种方法可以使用 XmlTextWriter
以简单的方式实现我的预期结果?
最佳答案
您的输出是正确的。没有内容的元素应该写成 <tag/>
.
您可以通过调用 WriteFullEndElement() 强制使用完整标记
writer.WriteStartElement("Email");
writer.WriteString(inputEmail);
writer.WriteFullEndElement();
这将输出 <Email></Email>
当 inputEmail 为空时。
如果你想多次这样做,你可以创建一个扩展方法:
public static void WriteFullElementString(this XmlTextWriter writer,
string localName,
string value)
{
writer.WriteStartElement(localName);
writer.WriteString(value);
writer.WriteFullEndElement();
}
那么你的代码会变成:
writer.WriteStartElement("User");
writer.WriteFullElementString("Username", inputUserName);
writer.WriteFullElementString("Email", inputEmail);
writer.WriteEndElement();
关于C#:XmlTextWriter.WriteElementString 在空字符串上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176202/
我正在使用 XmlTextWriter 及其 WriteElementString 方法,例如: XmlTextWriter writer = new XmlTextWriter("filename.
我正在使用 C# 将这个来自 SQL 的值写入 XML 文件。它是 SQL 表中的数据类型 datetime。 xmlWriter.WriteElementString("DDATE", reader
我有一个字符串: Comcast Cable Communications, Inc. No 我想使用 XmlWriter.WriteElementString() 输出这个字符串.这里的问题是 Xm
本文整理了Java中net.sf.okapi.common.XMLWriter.writeElementString()方法的一些代码示例,展示了XMLWriter.writeElementStrin
我是一名优秀的程序员,十分优秀!