从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'变量为空。
希望对此有所帮助,谢谢!
答
下面的代码给出了正确的结果,所以按给定路径选择节点没有问题。我认为你必须添加正确的命名空间才能工作。
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");
在非简化版本中是否有名称空间?像这个问题http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed – Jonesopolis 2013-05-01 20:37:45
没有命名空间,节点的名称是完全列出的(只是删除属性在这里) – 2013-05-01 20:39:02
给文档。的SelectSingleNode( “模式/注解/ APPINFO”);一试。 (删除引导斜杠) – Jonesopolis 2013-05-01 20:40:16