我有一个XML文档
<Root>
<Member xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:abc:xyz">
<ID>123</Id>
<Name>
<First>ABC</First>
<Last>XYZ</Last>
</Name>
<DateOfBirth>1900-01-01</DateOfBirth>
<Gender>Male</Gender>
</Member>
</Root>
这是我的代码
XElement xmlRootElement = xdoc.Element("Root");
var x = xmlRootElement.Element("Member");
为什么会员总是空无一人?
答案 0 :(得分:2)
Member
元素属于urn:abc:xyz
命名空间。
请尝试以下方法:
XNamespace ns = "urn:abc:xyz";
var x = xmlRootElement.Element(ns + "Member");
答案 1 :(得分:0)
获取Member元素的另一种方法是:
var elem = XElement.Parse("<Root><Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"urn:abc:xyz\"><ID>123</ID><Name><First>ABC</First><Last>XYZ</Last></Name><DateOfBirth>1900-01-01</DateOfBirth><Gender>Male</Gender></Member></Root>");
var ns = elem.XPathSelectElement("/*").GetDefaultNamespace();
var x = elem.Element(ns + "Member");
Console.WriteLine(x.CreateNavigator().OuterXml);