XElement.Parse不允许循环
XElement.Parse don't t allow to make a loop
我的程序使用 XML 构建了一个 html 文件。 (我使用 System.Xml,使用 System.Xml.Linq)。
我想以这种方式保持代码的形式,但是这个解决方案不起作用,因为 XElement.Parse
不允许我创建循环。有人可以帮忙吗?
StringBuilder table_dynamic10 = new StringBuilder();
using (SqlConnection conn = new SqlConnection(conString))
{
string query = string.Format("{0}{1}'", "SELECT [VALUE1],[VALUE2] FROM ...");
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
table_dynamic10.Append("<tr><td>" + reader["VALUE1"].ToString() + "</td><td>" + reader["VALUE2"].ToString() + "</td></tr>");
}
}
}
}
var xDocument = new XDocument(
new XDocumentType("html", null, null, null),
new XElement("html",
new XElement("head"),
new XElement("body",
XElement.Parse(table_dynamic10.ToString()))))
与其构建字符串,我建议直接构建 XML:
var body = new XElement("body");
using (SqlConnection conn = new SqlConnection(conString))
{
string query = string.Format("{0}{1}'", "SELECT [VALUE1],[VALUE2] FROM ...");
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
body.Add(new XElement("tr",
new XElement("td", reader["VALUE1"]),
new XElement("td", reader["VALUE2"])));
}
}
}
}
var document = new XDocument(
new XDocumentType("html", null, null, null),
new XElement("html", new XElement("head"), body));
请注意,这意味着数据库中的值将被 视为 值,并带有适当的引号等,而不是被解析为 XML。因此,如果您在数据库中有一个 foo & bar
的值,那将没问题,并最终在 XML 文档中作为 foo & bar
.
我的程序使用 XML 构建了一个 html 文件。 (我使用 System.Xml,使用 System.Xml.Linq)。
我想以这种方式保持代码的形式,但是这个解决方案不起作用,因为 XElement.Parse
不允许我创建循环。有人可以帮忙吗?
StringBuilder table_dynamic10 = new StringBuilder();
using (SqlConnection conn = new SqlConnection(conString))
{
string query = string.Format("{0}{1}'", "SELECT [VALUE1],[VALUE2] FROM ...");
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
table_dynamic10.Append("<tr><td>" + reader["VALUE1"].ToString() + "</td><td>" + reader["VALUE2"].ToString() + "</td></tr>");
}
}
}
}
var xDocument = new XDocument(
new XDocumentType("html", null, null, null),
new XElement("html",
new XElement("head"),
new XElement("body",
XElement.Parse(table_dynamic10.ToString()))))
与其构建字符串,我建议直接构建 XML:
var body = new XElement("body");
using (SqlConnection conn = new SqlConnection(conString))
{
string query = string.Format("{0}{1}'", "SELECT [VALUE1],[VALUE2] FROM ...");
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
body.Add(new XElement("tr",
new XElement("td", reader["VALUE1"]),
new XElement("td", reader["VALUE2"])));
}
}
}
}
var document = new XDocument(
new XDocumentType("html", null, null, null),
new XElement("html", new XElement("head"), body));
请注意,这意味着数据库中的值将被 视为 值,并带有适当的引号等,而不是被解析为 XML。因此,如果您在数据库中有一个 foo & bar
的值,那将没问题,并最终在 XML 文档中作为 foo & bar
.