创建XML元素时,硬编码字符串操作与Xelement
本文关键字:字符串 编码字符 操作 Xelement 编码 XML 元素 创建 | 更新日期: 2023-09-27 18:20:32
在c#中,如果我必须创建一个新的XElement,我可以使用以下两种方法。
方法1
string m = "<address>";
m += "<addressline1>" + address.Addressline1 + "</addressline1>";
m += "<addressline2>" + address.Addressline2 + "</addressline2>";
m += "<city>" + address.Addressline1 + "</city>";
m += "<postcode>" + address.Addressline1 + "</postcode>";
m += "</address>";
方法2
XElement a = new XElement("address",
new XElement("addressline1", address.Addressline1),
new XElement("addressline2", address.Addressline2),
new XElement("city", address.City),
new XElement("postcode", address.postcode)
);
如果我的最终目标只是获得作为XML字符串的自定义对象,那么哪种方法更可取?
永远不要使用字符串操作来构建XML。请改用XML API,如XElement
。它知道XML的所有规则,而字符串串联则不知道。
我强烈建议使用第二种方法。当然,如果你的值来自变量。如果您的xml已定义并且不会更改,请将其以xml文件的形式存储在文件系统中,并根据需要加载。
有几个原因为什么你不应该做在第一个例子
- 数据可以包含可能导致问题的
<
或>
字符,第二种方式会自动处理 - 在第一种情况下,代码可读性显著下降
- 硬代码是一个严重的反模式
- 第二种方法为将对象作为XML文档进行进一步操作提供了坚实的工具
第二个更好,因为XElement将为您转义所有值。