xmlDoc.SelectSingleNode为什么选不中节点

lsqsql 2009-12-21 02:49:00
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("wadl.xml"));
XmlElement root = xmlDoc.DocumentElement;
string nameSpace = root.NamespaceURI;
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("", nameSpace);
XmlNode rectifyele = xmlDoc.SelectSingleNode(@"application/resources", nsmgr);

问题是:rectifyele的值为什么为null?谢谢大家!!
附:wadl.xml

<?xml version="1.0" encoding="utf-8" ?>
- <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://research.sun.com/wadl/2006/10 wadl.xsd" xmlns="http://research.sun.com/wadl/2006/10">
- <resources base="http://somewhere.new/">
- <resource path="newRequest">
- <method name="GET">
- <request>
- <param name="newParam" type="xsd:string" style="query">
<doc xml:lang="en" title="newParam (Sample Value: newValue)">Estimated Type (supposed): [xsd:string]</doc>
</param>
</request>
</method>
</resource>
</resources>
</application>
...全文
328 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
psixm 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xmlxslt 的回复:]
把你的后两行改一下
C# code
nsmgr.AddNamespace("ya", nameSpace);
XmlNode rectifyele = xmlDoc.SelectSingleNode(@"//ya:resources", nsmgr);
[/Quote]

AddNamespace里的前缀不能取空值么?
另外如果在这加了前缀,xml文件中要加相应的前缀么?还是加的这个前缀只限在C#这个源代码中使用?
xmlxslt 2009-12-21
  • 打赏
  • 举报
回复
把你的后两行改一下
nsmgr.AddNamespace("ya", nameSpace);
XmlNode rectifyele = xmlDoc.SelectSingleNode(@"//ya:resources", nsmgr);
马老虎 2009-12-21
  • 打赏
  • 举报
回复

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧