Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 生成特定格式的Xml文件_.net_Xml_Linq To Xml - Fatal编程技术网

.net 生成特定格式的Xml文件

.net 生成特定格式的Xml文件,.net,xml,linq-to-xml,.net,Xml,Linq To Xml,我使用以下代码从IQueryable变量查询生成Xml: XDocument data = XDocument.Load(HttpContext.Current.Server .MapPath("~/XMLFile.xml")); XElement newTest = new XElement("TestForPackage", from Tests in query

我使用以下代码从IQueryable变量查询生成Xml:

XDocument data = XDocument.Load(HttpContext.Current.Server
                                           .MapPath("~/XMLFile.xml"));
XElement newTest = new XElement("TestForPackage",
                      from Tests in query.AsEnumerable()
                      select new  XElement("Tests",
                             new XElement("Dep_Code", Tests.Dep_Code),
                             new XElement("Dep_Name", Tests.Dep_Name),
                             new XElement("Test_Code", Tests.Test_Code),
                             new XElement("Test_Name", Tests.Test_Name),
                             new XElement("Sub_Test_Code", Tests.Sub_Test_Code),
                             new XElement("Sub_Test_Code", Tests.Sub_Test_Name)
                      ));

data.Element("TestsForPackage").Add(newTest);
data.Save(HttpContext.Current.Server.MapPath("~/XMLFile.xml"));
它以以下格式生成xml:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<TestsForPackage>
  <Test>
    <Dep_Code>BIOCH</Dep_Code>
    <Dep_Name>BIOCHEMISTRY</Dep_Name>
    <Test_Code>BGPP</Test_Code>
    <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
    <Sub_Test_Code />
    <Sub_Test_Name />
  </Test>

  <Test>
     <Dep_Code>BIOCH</Dep_Code>
     <Dep_Name>BIOCHEMISTRY</Dep_Name>
     <Test_Code>BGPP</Test_Code>
     <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
     <Sub_Test_Code />
     <Sub_Test_Name />
  </Test>

  <Test>
     <Dep_Code>BIOCH</Dep_Code>
     <Dep_Name>BIOCHEMISTRY</Dep_Name>
     <Test_Code>BGPP</Test_Code>
     <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
     <Sub_Test_Code />
     <Sub_Test_Name />
  </Test>      
</TestsForPackage>
但是,我需要以以下格式生成xml文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<TestsForPackage>
  <Test>
    <Dep_Code>BIOCH</Dep_Code>
    <Dep_Name>BIOCHEMISTRY</Dep_Name>
    <Test_Code>BGPP</Test_Code>
    <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
    <Sub_Test_Code />
    <Sub_Test_Name />
  </Test>

  <Test>
     <Dep_Code>BIOCH</Dep_Code>
     <Dep_Name>BIOCHEMISTRY</Dep_Name>
     <Test_Code>BGPP</Test_Code>
     <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
     <Sub_Test_Code />
     <Sub_Test_Name />
  </Test>

  <Test>
    <Dep_Code>BIOCH</Dep_Code>
     <Dep_Name>BIOCHEMISTRY</Dep_Name>
     <Test_Code>BGPP</Test_Code>
     <Test_Name>BLOOD GLUCOSE P.P.</Test_Name>
     <Sub_Test_Code />
     <Sub_Test_Name />
  </Test>

</TestsForPackage>

我知道我犯了一些小错误,但我不知道它是什么。

XML是关于语义的,它是一种传输和交换数据的机制。XML解析器不关心文件中的空白。出于这个原因,XML编写器不允许您控制空白输出,只允许您选择漂亮的打印


如果您想明确XML输出中换行符的位置,则必须使用字符串操作自己操作XML输出。

预期输出和实际输出之间的差异根本不明显,部分原因是您发布了包含大量空白的非常大的示例。还请注意,就我所知,这个问题与ASP.NET无关。我使用linq to sql生成了Xml文件,这就是为什么我将标记命名为ASP.netLINQ to sql和ASP.NET完全不同!仅仅因为你碰巧在某个地方使用ASP.NET并不意味着问题真的是关于ASP.NET的。看起来这可能只是一个LINQ到XML的问题,但我看不出预期的格式和您当前得到的格式之间的区别。请澄清——我能看到的两个XML文件之间的唯一区别是第二个文件中有一个额外的回车符。XML是关于语义的,关于意义的——空白在很大程度上是不相关的。@jon=对不起,jon我是新来的,我总是听你的建议