GetNodeByXpath抛出NullReferenceException

时间:2015-06-01 13:28:56

标签: xpath umbraco

以下这一行会抛出NullReferenceException。

Node nodeEmail = Node.GetNodeByXpath("//Member/email[text()='xxx']");

我已经

<root id="-1">
  <Members>
    <Member id="15853" ...>
      <email>xxx</email>
    </Member>
    ...

例外:

[NullReferenceException: Object reference not set to an instance of an object.]
   umbraco.NodeFactory.Node.initialize() +172
   umbraco.NodeFactory.Node..ctor(XmlNode NodeXmlNode) +179
   umbraco.NodeFactory.Node.GetNodeByXpath(String xpath) +168

这是我第一次尝试使用XPath。它在Umbraco 6上。
我做错了什么?

更多信息
下面没问题:

Node nodeEmail = Node.GetNodeByXpath("//Members");
Node nodeEmail = Node.GetNodeByXpath("//Members/Member");
Node nodeEmail = Node.GetNodeByXpath("//Member");

但这引发了相同的异常

Node nodeEmail = Node.GetNodeByXpath("//Members/Member/email");

2 个答案:

答案 0 :(得分:0)

text()更改为.,如下所示:

Node nodeEmail = Node.GetNodeByXpath("//Member/email[.='xxx']");

答案 1 :(得分:0)

这有效

Node nodeMember = Node.GetNodeByXpath("//Member[email='"+email+"']");

当然它抛出异常,因为我试图选择的不是Node。抱歉浪费你的时间。