我在使用XML进行编程方面相当新颖,而且在访问/操作该数据类型中的值时遇到困难。我用了一个字符串变量xmlDoc
和分配的XML文档(以字符串格式)xmlDoc = drvEval.Row["EvalAnswers"].ToString();
如何从XDocument实例/对象获取值
当我试图运行此,
foreach (var answer in answers) { Response.Write("ddl_item=" + answer.Item + " answer=" + answer.Answer + "<br />"); }
它只是给了我一个输出。结果的第一个节点,而不是我解析的xml文档的所有内容。下面是完整的代码:
private void ddl_Eval_SelectedIndexChanged (Object sender, System.EventArgs e)
{
//Response.Write(ddl_Eval.SelectedValue.ToString() + " " + "value: " + ddl_Eval.SelectedIndex);
dtEval = new DataTable();
dtEval = data.GetEvaluation2();
DataView dvEval = dtEval.DefaultView;
string xmlDoc = String.Empty;
foreach (DataRowView drvEval in dvEval)
{
if (drvEval.Row["EvaluationID"].ToString() == ddl_Eval.SelectedValue.ToString())
{
xmlDoc = drvEval.Row["EvalAnswers"].ToString();
}
}
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(xmlDoc);
//Response.Write(xmlDoc);
var answers = from answer in xdoc.Descendants("ANSWERS")
select new
{
Answer = answer.Element("Answer").Value,
Item = answer.Element("Answer").Attribute("item").Value,
};
foreach (var answer in answers)
{
Response.Write("ddl_item=" + answer.Item + " answer=" + answer.Answer + "<br />");
}
}
,这里是从SQL的XML我有(字符串格式,而不是XML数据类型)
<ANSWERS> <Answer item="ddl_3">A</Answer> <Answer item="ddl_8">A</Answer> <Answer item="ddl_13">Y</Answer> <Answer item="ddl_16">Y</Answer> <Answer item="ddl_19">Y</Answer> <Answer item="ddl_22">N</Answer> <Answer item="ddl_26">Y</Answer> <Answer item="ddl_30">N</Answer> <Answer item="ddl_34">Y</Answer> <Answer item="ddl_38">N</Answer> <Answer item="ddl_42">StarLight</Answer> </ANSWERS>
我想要做的就是让所有的Answer
的值和item
属性的值。我究竟做错了什么?请帮助,因为我完全卡住了。 :(
我得到这个链接上的概念:(和覆盖你以前添加的内容)Using LINQ to XML to Add Data to XML File in C#
[如何从SQL表中的列获取XML数据?](http://stackoverflow.com/questions/5812733/how-to-get-xml-data-from-a-column-在-AN-SQL的表) – 2011-04-29 00:26:55