Namespaces XElement.后代不';不能使用名称空间
我有一个简单的XMLNamespaces XElement.后代不';不能使用名称空间,namespaces,xelement,Namespaces,Xelement,我有一个简单的XML <S xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><H></H></S> 我想找到所有的“H”节点 XElement x=XElement.Parse(“”); IEnumerable h=x.子代(“h”); 如果(h!=null) { } 但是这个代码不起作用。 当我从S标记中删除名称空间时,代码正常工作。您的元素具有名称空
<S xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><H></H></S>
我想找到所有的“H”节点
XElement x=XElement.Parse(“”);
IEnumerable h=x.子代(“h”);
如果(h!=null)
{
}
但是这个代码不起作用。
当我从S标记中删除名称空间时,代码正常工作。您的元素具有名称空间,因为
xmlns
有效地为该元素及其子体设置了默认名称空间。请尝试以下方法:
XNamespace ns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
IEnumerable<XElement> h = x.Descendants(ns + "H");
我只是想在Jon的答案中添加一个名称空间,如下所示:
XNamespace ns = x.Name.Namespace
然后像他建议的那样使用它:
IEnumerable<XElement> h = x.Descendants(ns + "H");
IEnumerable h=x.subjects(ns+“h”);
顺便说一句,这个问题与WPF无关。。。
XNamespace ns = x.Name.Namespace
IEnumerable<XElement> h = x.Descendants(ns + "H");