【发布时间】:2016-06-17 14:46:58
【问题描述】:
我正在尝试产生以下输出:
<article> <status> </status> ....</article>
<article> <status> </status> ....</article>
我在循环逻辑方面几乎不需要任何帮助 - 任何我可能出错的建议。我尝试使用“for”循环,但未能产生所需的输出。请指教。谢谢你。
public static string createArticleALL()
{
XElement xeRoot = new XElement("article");
XDocument xDoc = new XDocument(xeRoot);
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["###"].ConnectionString))
{
con.Open();
using (SqlCommand command = new SqlCommand("####", con))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string title = reader.GetString(0);
string body = reader.GetString(4);
string pub = reader["publication_id"].ToString();
string iss = reader["issue_id"].ToString();
string sid = reader["STORYID"].ToString();
string c = url(title, pub, iss, sid);
DateTime dt = DateTime.Today;
foreach (XElement element in xDoc.Descendants("article"))
{
XElement xeStatus = new XElement("status", "Approved");
xeRoot.Add(xeStatus);
XElement xeTitle = new XElement("title", title);
xeRoot.Add(xeTitle);
XElement xeSubTitle = new XElement("subtitle", title);
xeRoot.Add(xeSubTitle);
XElement xeSynopsis = new XElement("synopsis", body + "...");
xeRoot.Add(xeSynopsis);
XElement xeURL = new XElement("url", c);
xeRoot.Add(xeURL);
XElement xeDisplayDate = new XElement("display_date", dt);
xeRoot.Add(xeDisplayDate);
}
}
}
return xDoc.ToString();
}
return null;
}
【问题讨论】:
-
1) 您的代码当前产生什么输出? 2) 您想要的输出不是有效的 XML。有效的 XML 必须有一个 root element。您不能使用
XDocument生成无效的 XML。