一串XElement中的格式未格式化
本文关键字:格式化 格式 XElement 一串 | 更新日期: 2023-09-27 17:59:36
我正在尝试格式化一个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"。
有什么想法吗?
正确的String.Format
语法是使用逗号进行对齐,而不是冒号:
string.Format("{0,-10}{1,-10}{2,-10}", i.a, i.b, i.c)
根据MSDN:
格式项的语法如下如下:
{index[,length][:formatString]}
尝试包装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属性,它也应该产生所需的结果。有关详细信息,请参阅此MSDN页面。