我正在尝试格式化一个XML元素,其中三个字符串用空格填充到10个字符。这是我正在使用的代码。
在模型中设置了三个字符串。
public string a{ get; set; }
public string b{ get; set; }
public string c{ get; set; }
然后格式化为XElement
var itemElement = new XElement("item",
new XElement("abc", string.Format("{0:-10}{1:-10}{2:-10}", i.a, i.b, i.c))
);
它应该产生“a(填充)b(填充)c(填充)”,但在节点内产生“abc”。
有什么想法吗?
答案 0 :(得分:3)
正确的String.Format
语法是使用逗号进行对齐,而不是使用冒号:
string.Format("{0,-10}{1,-10}{2,-10}", i.a, i.b, i.c)
格式项的语法为 如下:
{索引[,长度] [:formatString的]}
答案 1 :(得分:0)
尝试换行CData元素:
var itemElement = new XElement("item",
new XCData(
new XElement("abc", string.Format("{0:-10}{1:-10}{2:-10}", i.a, i.b, i.c))));
您需要这样做,因为默认情况下XML解析器不会认为空格是重要的。使用CData的替代方法是xml:space属性,它也应该产生所需的结果。请参阅this MSDN page for详细信息。