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