如何选择指定xmlns的元素?我需要选择Include / Fragment元素。我尝试在元素名称之前添加http://schemas.microsoft.com/wix/2006/wi,但这不起作用。在XmlDocument中有NamespaceManager功能,但我在XDocument中看不到相同的东西。那么如何选择带有xmlns的元素?
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment/>
</Include>
我试过了:
IEnumerable<XElement> Fragments = d.Element("Include").Elements("Fragment");
和
const string xmlns="http://schemas.microsoft.com/wix/2006/wi/";
IEnumerable<XElement> Fragments = d.Element(xmlns+"Include").Elements(xmlns+"Fragment");
答案 0 :(得分:2)
您只需要将xmlns
变量设为XNamespace
(而不仅仅是字符串):
XNamespace xmlns = "http://schemas.microsoft.com/wix/2006/wi";
IEnumerable<XElement> Fragments = doc.Element(xmlns + "Include").Elements(xmlns + "Fragment");
然后它应该工作得很好!
答案 1 :(得分:0)
XElement yourfile = XElement.Load("yourfile.xml");
IEnumerable<XElement> address =
from el in yourfile.Elements("Include")
where (string)el.Attribute("XElement") !=null
select el;
我尝试在此处实施代码:http://msdn.microsoft.com/en-us/library/bb675197.aspx 它还将其转换为列表。希望有所帮助