public void TestXPathExpression() { var ctx = new XPathNamespaceContext(); ctx.AddNamespace("n0", "samples:schemas:simpleSchema"); var node = SupportXML.GetDocument().DocumentElement; var pathExprOne = XPathExpression.Compile( "/n0:simpleEvent/n0:nested1", ctx); var nav = node.CreateNavigator(); var iterator = (XPathNodeIterator)nav.Evaluate(pathExprOne); Assert.AreEqual(iterator.Count, 1); Assert.IsTrue(iterator.MoveNext()); var result = ((IHasXmlNode)iterator.Current).GetNode(); Assert.IsNotNull(result); //Console.WriteLine("Result:\n" + SchemaUtil.Serialize(result)); var pathExprTwo = XPathExpression.Compile("/n0:simpleEvent/n0:nested1/n0:prop1", ctx); iterator = (XPathNodeIterator)nav.Evaluate(pathExprTwo); Assert.AreEqual(iterator.Count, 1); Assert.IsTrue(iterator.MoveNext()); var resultTwo = (string)iterator.Current.TypedValue; //Console.WriteLine("Result 2: <" + resultTwo + ">"); var pathExprThree = XPathExpression.Compile("/n0:simpleEvent/n0:nested3", ctx); iterator = (XPathNodeIterator)nav.Evaluate(pathExprThree); Assert.AreEqual(iterator.Count, 1); Assert.IsTrue(iterator.MoveNext()); var resultThree = (string)iterator.Current.TypedValue; //Console.WriteLine("Result 3: <" + resultThress + ">"); }
public void Run(RegressionEnvironment env) { var ctx = new XPathNamespaceContext(); ctx.AddNamespace("n0", "samples:schemas:simpleSchema"); XmlNode node = SupportXML.GetDocument().DocumentElement; var pathExprOne = XPathExpression.Compile("/n0:simpleEvent/n0:nested1", ctx); var pathExprOneIterator = node.CreateNavigator().Select(pathExprOne); Assert.That(pathExprOne.ReturnType, Is.EqualTo(XPathResultType.NodeSet)); Assert.That(pathExprOneIterator.MoveNext(), Is.True); Assert.That(pathExprOneIterator.Current.UnderlyingObject, Is.InstanceOf<XmlElement>()); Assert.That(pathExprOneIterator.Current.NodeType, Is.EqualTo(XPathNodeType.Element)); //System.out.println("Result:\n" + SchemaUtil.serialize(result)); var pathExprTwo = XPathExpression.Compile("/n0:simpleEvent/n0:nested1/n0:prop1", ctx); var pathExprTwoIterator = node.CreateNavigator().Select(pathExprTwo); Assert.That(pathExprTwoIterator.MoveNext(), Is.True); Assert.That(pathExprTwoIterator.Current.UnderlyingObject, Is.InstanceOf<XmlElement>()); Assert.That(pathExprTwoIterator.Current.NodeType, Is.EqualTo(XPathNodeType.Element)); Assert.That(pathExprTwoIterator.Current.MoveToFirstChild(), Is.True); Assert.That(pathExprTwoIterator.Current.NodeType, Is.EqualTo(XPathNodeType.Text)); Assert.That(pathExprTwoIterator.Current.TypedValue, Is.EqualTo("SAMPLE_V1")); //System.out.println("Result 2: <" + resultTwo + ">"); var pathExprThree = XPathExpression.Compile("/n0:simpleEvent/n0:nested3", ctx); var pathExprThreeIterator = node.CreateNavigator().Select(pathExprThree); Assert.That(pathExprThreeIterator.MoveNext(), Is.True); Assert.That(pathExprThreeIterator.Current.UnderlyingObject, Is.InstanceOf<XmlElement>()); Assert.That(pathExprThreeIterator.Current.NodeType, Is.EqualTo(XPathNodeType.Element)); Assert.That(pathExprThreeIterator.Current.HasChildren, Is.True); //System.out.println("Result 3: <" + resultThree + ">"); }
public virtual NodeList EvaluateXPath(string xPathExpression, Node node, XPathNamespaceContext nsctx) { _XPath.NamespaceContext = nsctx; return(_XPath.Evaluate(xPathExpression, node)); }