在C#中使用LINQ创建XML

时间:2013-07-26 17:59:26

标签: c# xml linq linq-to-xml salesforce

我正在尝试创建以下XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">
<operation>insert</operation>
<object>Contact</object>
<contentType>CSV</contentType>
</jobInfo>

我有以下代码(刚刚开始):

XElement _obj = new XElement("?xml",
                new XAttribute("version", "1.0"),
                new XAttribute("encoding", "UTF-8")
                );

我得到的错误是:

  

名称不能以'?'开头字符,十六进制值0x3F。

我不熟悉使用C#中的LINQ创建XML,并且只是想知道我是否正确地使用它...如何创建我想要创建的XML文档?

2 个答案:

答案 0 :(得分:3)

您好像在寻找XDeclaration。这些是自动插入的,因此您无需担心它们。如果你确实需要它:

XDeclaration _obj = new XDeclaration("1.0", "utf-8", "");

答案 1 :(得分:1)

XNamespace dl = "http://www.force.com/2009/06/asyncapi/dataload";
XElement jobInfo = new XElement(dl + "jobInfo",
  new XElement(dl + "operation", "insert"),
  new XElement(dl + "object", "Contact"),
  new XElement(dl + "contentType", "CSV")
);

jobInfo.Save("info.xml");

应该执行并编写XML声明<?xml version="1.0" encoding="UTF-8"?>,而无需明确创建它。