2013-05-01 172 views
0

我正嘗試讀取簡單的xml文件,但遇到一些問題。下面是代碼來閱讀:從XML文件中讀取空對象

XmlDocument doc = new XmlDocument(); 
    doc.Load("C:/file.xsd"); 

    XmlNode loc = doc.SelectSingleNode("/schema/annotation/appinfo"); 
    XmlNodeList refNode= loc.SelectNodes("referral"); 

這裏是XML的樣子:

<schema> 
    <annotation> 
    <appinfo> 
    <referral/> 
    <referral/> 
    <referral/> 
    </appinfo> 
    </annotation> 
</schema> 

我已經簡化它readabilities的緣故,但我想在閱讀'推薦'節點。我確認文件正在讀入,但'loc'變量爲空。

希望對此有所幫助,謝謝!

+1

在非簡化版本中是否有名稱空間?像這個問題http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed – Jonesopolis 2013-05-01 20:37:45

+0

沒有命名空間,節點的名稱是完全列出的(只是刪除屬性在這裏) – 2013-05-01 20:39:02

+0

給文檔。的SelectSingleNode( 「模式/註解/ APPINFO」);一試。 (刪除引導斜槓) – Jonesopolis 2013-05-01 20:40:16

回答

0

下面的代碼給出了正確的結果,所以按給定路徑選擇節點沒有問題。我認爲你必須添加正確的命名空間才能工作。

string xml = @"<schema> 
       <annotation> 
       <appinfo> 
        <referral/> 
        <referral/> 
        <referral/> 
       </appinfo> 
       </annotation> 
      </schema>"; 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xml); 

XmlNode loc = doc.SelectSingleNode("/schema/annotation/appinfo"); 
XmlNodeList refNode = loc.SelectNodes("referral");