Files
SabreTools/SabreTools.Library/IO/XmlTextWriterExtensions.cs

62 lines
2.5 KiB
C#
Raw Normal View History

2020-08-23 21:10:29 -07:00
using System.Xml;
namespace SabreTools.Library.IO
{
/// <summary>
/// Additional methods for XmlTextWriter
/// </summary>
public static class XmlTextWriterExtensions
{
2020-08-24 00:48:27 -07:00
/// <summary>
/// Write an attribute, forcing empty if null
/// </summary>
/// <param name="writer">XmlTextWriter to write out with</param>
/// <param name="localName">Name of the element</param>
/// <param name="value">Value to write in the element</param>
public static void WriteRequiredAttributeString(this XmlTextWriter writer, string localName, string value)
{
writer.WriteAttributeString(localName, value ?? string.Empty);
}
2020-08-24 00:25:23 -07:00
/// <summary>
/// Force writing separate open and start tags, even for empty elements
/// </summary>
/// <param name="writer">XmlTextWriter to write out with</param>
/// <param name="localName">Name of the element</param>
/// <param name="value">Value to write in the element</param>
2020-08-24 00:48:27 -07:00
public static void WriteRequiredElementString(this XmlTextWriter writer, string localName, string value)
2020-08-24 00:25:23 -07:00
{
writer.WriteStartElement(localName);
2020-09-30 09:56:42 -07:00
if (value == null)
writer.WriteRaw(string.Empty);
else
writer.WriteString(value);
2020-08-24 00:25:23 -07:00
writer.WriteFullEndElement();
}
2020-08-23 22:23:55 -07:00
/// <summary>
/// Write an attribute, if the value is not null or empty
/// </summary>
/// <param name="writer">XmlTextWriter to write out with</param>
/// <param name="localName">Name of the attribute</param>
/// <param name="value">Value to write in the attribute</param>
2020-08-23 22:54:09 -07:00
public static void WriteOptionalAttributeString(this XmlTextWriter writer, string localName, string value)
2020-08-23 22:23:55 -07:00
{
2020-08-24 11:56:49 -07:00
if (!string.IsNullOrEmpty(value))
2020-08-23 22:23:55 -07:00
writer.WriteAttributeString(localName, value);
}
2020-08-23 21:10:29 -07:00
/// <summary>
2020-08-24 00:25:23 -07:00
/// Write an element, if the value is not null or empty
2020-08-23 21:10:29 -07:00
/// </summary>
2020-08-23 22:23:55 -07:00
/// <param name="writer">XmlTextWriter to write out with</param>
2020-08-23 21:10:29 -07:00
/// <param name="localName">Name of the element</param>
/// <param name="value">Value to write in the element</param>
2020-08-24 00:25:23 -07:00
public static void WriteOptionalElementString(this XmlTextWriter writer, string localName, string value)
2020-08-23 21:10:29 -07:00
{
2020-08-24 11:56:49 -07:00
if (!string.IsNullOrEmpty(value))
2020-08-24 00:25:23 -07:00
writer.WriteElementString(localName, value);
2020-08-23 21:10:29 -07:00
}
}
}