2012-07-27 44 views
2

我有一個這樣的XML:XmlNode.SelectNodes返回0節點

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <reflection-optimizer use="false"/> 
    <session-factory> 
      <property name="XX">XX</property> 
      <property name="XX">XX</property> 
    </session-factory> 
    </hibernate-configuration> 

我想使用的SelectNodes屬性節點來選擇,我已經試過如下:

root.SelectNodes("property"); 
root.SelectNodes("//property"); 
root.SelectNodes("/session-factory/property"); 
root.SelectNodes("descendant::property"); 
root.LastChild.SelectNodes("child::property"); 

但是它們都返回0個節點。誰能幫我?謝謝。

+0

它與根節點的命名空間做。 – 2012-07-27 14:40:45

回答

0

我會建議你使用的LINQ to XML

var xml = XDocument.Parse(
    @"<?xml version=""1.0"" encoding=""utf-8"" ?> 
    <hibernate-configuration xmlns=""urn:nhibernate-configuration-2.2""> 
    <reflection-optimizer use=""false""/> 
    <session-factory> 
    <property name=""XX"">XX</property> 
    <property name=""XX"">XX</property> 
    </session-factory> 
    </hibernate-configuration>"); 
    var properties = xml.Descendants().Where(p=>p.Name.LocalName.Equals("property")).ToList(); 

檢查MSDN這裏更多的信息:http://msdn.microsoft.com/en-us/library/bb943906.aspx

+0

感謝您的回覆。我使用LINQ to XML工作,但我仍然想弄清楚我在SelectNodes中做了什麼錯誤。 – user1486691 2012-07-27 15:00:08