从XML文件中读取空对象

问题描述:

我正尝试读取简单的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://*.com/questions/24734/selectnodes-not-working-on-*-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

下面的代码给出了正确的结果,所以按给定路径选择节点没有问题。我认为你必须添加正确的命名空间才能工作。

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