生成特定格式的Xml文件

发布于 2024-12-27 18:59:41 字数 3034 浏览 0 评论 0原文

我有这段代码从 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>

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

I have this code to generate Xml from an IQueryable variable query:

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"));

It generates xml in the format below:

<?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>

However, I need to generate xml file in this format:

<?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>

I know I am making some minor mistake but I don't know what it is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无风消散 2025-01-03 18:59:41

XML 是关于语义的,它是一种传输和交换数据的机制。 XML 解析器不关心文件中的空格。因此,XML 编写器不允许您控制空白输出(除了为您提供漂亮打印的选项)。

如果您想具体了解 XML 输出中换行符的位置,则必须使用字符串操作自行操作 XML 输出。

XML is all about semantics, it is a mechanism for transmission and exchange of data. An XML parser doesn't care about the whitespace in your file. For this reason, XML writers do not allow you to control the whitespace output (other than giving your the option to pretty-print).

If you want to be specific about where the line-breaks are in your XML output, you are going to have to manipulate the XML output yourself using string manipulation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文