2014-09-19 69 views
0

我有一個XML文檔的XElement值總是空

<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"); 

爲什麼會員總是空?

回答

2

Member元素屬於urn:abc:xyz命名空間。 嘗試以下操作:

XNamespace ns = "urn:abc:xyz"; 
var x = xmlRootElement.Element(ns + "Member"); 
0

另一種方式來獲得會員要素是:

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);