在Entity Framework中加载XML字符串时,XElement.Parse不能很好地工作

时间:2013-07-08 17:45:18

标签: c# sql-server xml

我可以使用以下块从文件系统加载XML文件。 xml文件是从SQL Server创建的。

var stream = Application.GetResourceStream(new Uri("XmlSource/mydata.xml", UriKind.Relative));
            try
            {
                var dataXml = XElement.Load(stream.Stream);
                foreach (var element in dataXml.Elements("Node"))
                {
                    var node = CreateNode(element, null);
                    node.Children.AddRange(GetSubNodes(element, node));
                    HierarchicalDataSource.Add(node);
                }

我想绕过创建xml文件的步骤,直接从数据库中直接从代码中获取xml。所以,我尝试使用以下代码来获取我的数据:

var dataXml = XElement.Parse(myxml, LoadOptions.PreserveWhitespace);
            foreach (var element in dataXml.Elements("Node"))
            {
                var node = CreateNode(element, null);
                node.Children.AddRange(GetSubNodes(element, node));
                HierarchicalDataSource.Add(node);
            }

我在两个实例中捕获了dataXml的值,粘贴到记事本中并比较了两个文件。它们的内容和结构完全相同。因此,无论数据的直接来源如何,dataXml都是相同的。我的问题是为什么第一个例子工作而第二个例子失败?选项2没有错误,只是我的分层图没有填充,因为它在选项1中。

谢谢!

0 个答案:

没有答案