0

我可以使用以下块从文件系统加载 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 中那样填充。

谢谢!

4

0 回答 0