LINQ2XML后代在Windows Phone 8中工作
本文关键字:工作 Phone Windows 后代 LINQ2XML | 更新日期: 2023-09-27 18:34:41
我正在开发Windows Phone 8 C#/XAML .NET 4.5应用程序
我正在尝试从我得到的 XML 中选择具有给定名称的元素,但是当我尝试使用 Descendants
选择它时,它会返回空集合/列表/结果数组。
正常,但是当我尝试使用名称搜索时,它返回空。
我可能只是愚蠢,犯了一个愚蠢的错误。你看到一些/你能解释一下吗?
例子:
myXMLString:
<root>
<element>
<thisOne xmlns="something">example</thisOne>
<element>
<others></others>
</root>
法典:
XDocument xmlData = XDocument.Parse(myXMLString);
//is always null
var thisOne = xmlData.Root.Descendants("thisOne").FirstOrDefault();
//returns the flattened version of the tree in a list
var descendants = xmlData.Root.Descedants().ToList();
您当前正在寻找名为 thisOne
的元素,这些元素不在命名空间中。您需要指定something
命名空间...xmlns="something"
部分指定此元素和其他后代的默认命名空间。幸运的是,LINQ to XML 使使用 XML 命名空间变得非常容易:
XNamespace ns = "something";
var thisOne = xmlData.Root.Descendants(ns + "thisOne").FirstOrDefault();