永发信息网

C# winform 需要命名空间管理器或 XsltContext.此查询具有前缀,变量或用户定义的函数

答案:2  悬赏:30  手机版
解决时间 2021-02-13 01:29
  • 提问者网友:半生酒醒
  • 2021-02-12 20:03
////读入XML文件模板 string fileName = "TIBET_CEODE_AMSR_E_Aqu_01SWE01_20110201";
XmlDocument xdoc = new XmlDocument();//创建xmldocument对象
string strFileName = "e:\\model.xml";//绝对路径,注意要把模板文件放到该文件下
xdoc.Load(strFileName);//读取XML文件

//selectSingleNode 根据XPath表达式,获得符合条件的第一个节点. string xpath ="/gmd:MD_Metadata/gmd:language[gco:CharacterString='eng']";
XmlNode xnode = xdoc.SelectSingleNode(xpath);
Console.WriteLine("{0}\t:{1}",xnode.Name,xnode.OuterXml);
Console.Read();
系统编译错误,错误提示:C# winform 需要命名空间管理器或 XsltContext.此查询具有前缀,变量或用户定义的函数,怎么解决?求指教
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-02-12 20:45
你的xml是不是有命名空间的。如果有就要用:
SelelctSingleNode(string xpath,XmlNamespaceManager nsmgr),第一个参数还是xpath,第二个参数是XmlNamespaceManager对象,由于我们的Xml是有命名空间的,所以我们要使用第二种方法!首先我们要建立一个XmlNamespaceManager对象,建立的方法为
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable);
建立完对象后,我们就要开始为nsmgr增加我们的命名空间了(注意,这里加的命名空间要与Xml实际的相对应,但前辍名可不同)
全部回答
  • 1楼网友:毛毛
  • 2021-02-12 21:50
是doc.selectnodes("/elements/element[@code='" + code + "']/item[ends-with(@code,'0000')]"); 语法错误! 你可能分开来写: xmlnode node= doc.selectnodes("/elements/element[@code='" + code + "']); 然后再查node变量.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯