如何在创建时将 foreach 循环放入 XDocument 中?
How do I put a foreach loop inside of a XDocument in creation?
我创建的 XDocument 有一个小问题。我正在尝试在文档创建中使用 foreach 循环,但我不知道如何实现它。
代码:
部分代码:
XDocument doc = null;
doc = new XDocument(
new XDeclaration("1.0", "ISO-8859-1", "no"),
new XElement("data",
new XElement("meta",
new XElement("val",
new XAttribute("n", "printer"), DropDownPrinters.SelectedItem.Text),
new XElement("val",
new XAttribute("n", "autoprint"), "YES"),
new XElement("val",
new XAttribute("n", "test"), 0)
), //after this I need to loop through datarows, something like this
foreach (DataTable dt in ds3.Tables)
{
foreach (DataRow dr in dt.Rows)
{
new XElement("something",
new XAttribute("something", dr.Field<string>("3")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0") + " " + dr.Field<string>(4) + " " + dr.Field<string>(5)),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), "SE"),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"))
);
}}
使用 LINQ 而不是 foreach
,像这样:
var something = from dt in ds.Tables.OfType<DataTable>()
from dr in t.AsEnumerable()
select
new XElement("something",
new XAttribute("something", dr.Field<string>("3")),
......
......
);
然后你可以把变量 something
放在你的 foreach
应该在的地方。
我创建的 XDocument 有一个小问题。我正在尝试在文档创建中使用 foreach 循环,但我不知道如何实现它。 代码:
部分代码:
XDocument doc = null;
doc = new XDocument(
new XDeclaration("1.0", "ISO-8859-1", "no"),
new XElement("data",
new XElement("meta",
new XElement("val",
new XAttribute("n", "printer"), DropDownPrinters.SelectedItem.Text),
new XElement("val",
new XAttribute("n", "autoprint"), "YES"),
new XElement("val",
new XAttribute("n", "test"), 0)
), //after this I need to loop through datarows, something like this
foreach (DataTable dt in ds3.Tables)
{
foreach (DataRow dr in dt.Rows)
{
new XElement("something",
new XAttribute("something", dr.Field<string>("3")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0") + " " + dr.Field<string>(4) + " " + dr.Field<string>(5)),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"), "SE"),
new XElement("val",
new XAttribute("n", "something"), dr.Field<string>("0")),
new XElement("val",
new XAttribute("n", "something"))
);
}}
使用 LINQ 而不是 foreach
,像这样:
var something = from dt in ds.Tables.OfType<DataTable>()
from dr in t.AsEnumerable()
select
new XElement("something",
new XAttribute("something", dr.Field<string>("3")),
......
......
);
然后你可以把变量 something
放在你的 foreach
应该在的地方。