代码之家  ›  专栏  ›  技术社区  ›  John M Gant aman_novice

我可以将XPath函数与XPathNavigator一起使用吗?

  •  1
  • John M Gant aman_novice  · 技术社区  · 15 年前

    System.Xml.XPath.XPathException - Expression must evaluate to a node-set.   
    

    这是我的密码。

    XPathDocument doc = new XPathDocument(new StringReader(myLiteralXML));
    XPathNavigator nav = doc.CreateNavigator();
    string myXPath = "sum(/root/level1/level2/elementsToAdd)";
    XPathNavigator sumNode = nav.SelectSingleNode(myXPath);
    

    我预料 sumNode.Value 把我的总数(作为字符串)给我。但是,当我尝试填充时,我得到了上面列出的异常 sumNode

    (还有,我只是好奇,我是不是在浪费时间在一个没有人使用的死胡同上,冒着一年后无法弄清楚这是怎么回事的风险?)

    1 回复  |  直到 15 年前
        1
  •  6
  •   Andrew Hare    15 年前

    请尝试以下方法:

    XPathNavigator sumNode = nav.Evaluate(myXPath);
    

    这个 XPathNavigator.Evaluate 方法定义为:

    而不是 XPathNavigator.SelectSingleNode 方法,该方法设计为仅返回节点。