如何访问底层的xml值

时间:2014-07-16 08:18:53

标签: c# xml

我使用以下内容将信息传递给保存功能。

  List<XElement> listElements = new List<XElement>();

   listElements.Addnew XElement(@"TextBox", new XElement("name"),
                             new XElement("Type", "System.String"),
                               new XElement("displayName", ""),
                               new XElement("length", "12"),
                                new XElement("key", false),
                                new XElement("required", false)));

  listElements.Add(new XElement(@"ClassficationEnum", new XElement("name","TestForm"),
                             new XElement("Type", "System.String"),
                               new XElement("displayName", "TestForm"),
                               new XElement("length", "12"),
                                new XElement("key", false),
                                new XElement("required", false)));

然后我将它传递给更新命令,如下所示

      portalContext.UpdateFormBuilder(formToUpdate, strName.ToString(), listElements.ToString());

要保存到我的实体,我正在使用此

            var q = from forms in portalEntities.FormBuilders
                    where forms.Name == formName                        
                    select forms;


            List<FormBuilder> formBuilderRecords = q.ToList();
            foreach (FormBuilder formsBuilder in formBuilderRecords)
            {
                formsBuilder.Name = formName;
                formsBuilder.ExtraFields = xml.ToString();
                formsBuilder.title = Title;



            }


            return SaveChanges();

我遇到的问题是它只是将以下内容保存到数据库中,我如何才能获得所有值,而不仅仅是这样。

System.Collections.Generic.List`1 [System.Xml.Linq.XElement]

1 个答案:

答案 0 :(得分:0)

您可以在.ToString()上致电XElement以获取其XML标记,但在.ToString()上调用List只能打印它的类型。因此,您的问题不是获取基础XML值,而是正确保存XML值。

如果您打算将所有XElement保存为数据库中的单个XML,则需要将它们放在单个根元素中:

.....
var root = new XElement("root", listElements);
.....
portalContext.UpdateFormBuilder(formToUpdate, strName.ToString(), root.ToString());