C# XmlDocument XPath表达式失败
我使用的是C#XMLDocumentAPI 我有以下XML:C# XmlDocument XPath表达式失败,c#,xpath,xmldocument,C#,Xpath,Xmldocument,我使用的是C#XMLDocumentAPI 我有以下XML: <Node1> <Node2> <Node3> </Node3> </Node2> </Node1> 根节点.OuterXml的日志 <Node1><Node2><Node3>..... 。。。。。 但是test\u节点返回null 这里出了什么问题?从根节点选择时,请使用
<Node1>
<Node2>
<Node3>
</Node3>
</Node2>
</Node1>
根节点.OuterXml的日志
<Node1><Node2><Node3>.....
。。。。。
但是test\u节点
返回null
这里出了什么问题?从根节点选择时,请使用//而不是/
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode root_node = doc.DocumentElement.SelectSingleNode("/Node1");
XmlNode test_node = root_node.SelectSingleNode("//Node2/Node3");
另一个选项是使用节点3的完整路径
XmlNode test_node = doc.DocumentElement.SelectSingleNode("/Node1/Node2/Node3");
从根节点选择时,请使用//而不是/
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode root_node = doc.DocumentElement.SelectSingleNode("/Node1");
XmlNode test_node = root_node.SelectSingleNode("//Node2/Node3");
另一个选项是使用节点3的完整路径
XmlNode test_node = doc.DocumentElement.SelectSingleNode("/Node1/Node2/Node3");
您可以简单地调用子体()
或者使用XPathSelectElement()
您可以简单地调用子体() 或者使用
XPathSelectElement()
使用路径“Node2/Node3”
而不是“/Node2/Node3”
:
在XPath表达式中,前导正斜杠/
表示文档的根。表达式“/Node2/Node3”
不起作用,因为
不在文档的根。使用路径“Node2/Node3”
而不是“/Node2/Node3”
:
在XPath表达式中,前导正斜杠
/
表示文档的根。表达式“/Node2/Node3”
不起作用,因为
不在文档的根目录下。您试图在这里实现什么?测试节点的作用域是Node3,而不是null。您试图在这里实现什么?测试节点的作用域是Node3,而不是null。
var node2= doc.Root.Element("Node2").Element("Node3");
var node3= doc.XPathSelectElement("/Node1/Node2/Node3");
XmlNode test_node = root_node.SelectSingleNode("Node2/Node3");