以下这一行会抛出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");
答案 0 :(得分:0)
将text()
更改为.
,如下所示:
Node nodeEmail = Node.GetNodeByXpath("//Member/email[.='xxx']");
答案 1 :(得分:0)
这有效
Node nodeMember = Node.GetNodeByXpath("//Member[email='"+email+"']");
当然它抛出异常,因为我试图选择的不是Node。抱歉浪费你的时间。