【发布时间】:2012-01-20 08:09:47
【问题描述】:
我有这段代码可以从 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>
我知道我犯了一些小错误,但我不知道是什么。
【问题讨论】:
-
预期输出和实际输出之间的差异并不明显——部分原因是您发布了带有大量空白的非常大的样本。另请注意,据我所知,这个问题与 ASP.NET 无关。
-
我已经使用 linq to sql 生成了 Xml 文件,这就是为什么我将标签设为 asp.net
-
LINQ to SQL 和 ASP.NET 是完全不同的!仅仅因为您碰巧在某处使用 ASP.NET 并不意味着问题真的是关于 ASP.NET。看起来它可能只是一个 LINQ to XML 问题,但我无法发现预期格式与您当前得到的格式之间的区别。请澄清 - 并阅读tinyurl.com/so-hints
-
我能看到的两个 XML 文件之间的唯一区别是第二个文件中有一个额外的回车符。 XML 是关于语义和意义的——空白在很大程度上是无关紧要的。
-
@jon =对不起,乔恩,我是新来的,我会一直听取你的建议
标签: .net xml linq-to-xml