/// <summary>See <see cref="XPathNavigator.IsSamePosition"/></summary> public override bool IsSamePosition(XPathNavigator other) { if (other != null && other is XmlNodeNavigator) { XmlNodeNavigator otherNav = (XmlNodeNavigator)other; return((otherNav.State.DocumentNode == _state.DocumentNode && (otherNav.State.AtRoot == true && _state.AtRoot == true || ((IHasXmlNode)otherNav.State.Navigator).GetNode() == ((IHasXmlNode)_state.Navigator).GetNode()))? true : false); } else { return(false); } }
public void Test() { XslTransform xslt = new XslTransform(); xslt.Load(new XmlTextReader( Globals.GetResource(this.GetType().Namespace + ".test.xsl"))); XmlDocument doc = new XmlDocument(); doc.Load(new XmlTextReader( Globals.GetResource(Globals.LibraryResource))); //Navigator over first child of document element XPathNavigator nav = new XmlNodeNavigator(doc.DocumentElement.FirstChild); StringWriter sw = new StringWriter(); xslt.Transform(nav, null, sw, null); Assert.AreEqual(sw.ToString(), doc.DocumentElement.FirstChild.OuterXml); }
/// <summary>See <see cref="XPathNavigator.MoveTo"/></summary> public override bool MoveTo(XPathNavigator other) { if (other != null && other is XmlNodeNavigator) { XmlNodeNavigator otherNav = (XmlNodeNavigator)other; if (otherNav.State.DocumentNode != _state.DocumentNode) { return(false); } _state = new NavigatorState(otherNav.State); return(true); } else { return(false); } }