| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // System.Xml.XPath.XPathComparer
- //
- // Author:
- // Atsushi Enomoto <[email protected]>
- //
- // (C) 2003 Atsushi Enomoto
- //
- using System;
- using System.Collections;
- using System.Xml;
- using System.Xml.XPath;
- using System.Xml.Xsl;
- namespace System.Xml.XPath
- {
- internal class XPathIteratorComparer : IComparer
- {
- public static XPathIteratorComparer Instance = new XPathIteratorComparer ();
- private XPathIteratorComparer ()
- {
- }
- public int Compare (object o1, object o2)
- {
- BaseIterator nav1 = o1 as BaseIterator;
- BaseIterator nav2 = o2 as BaseIterator;
- if (nav1 == null)
- return -1;
- if (nav2 == null)
- return 1;
- switch (nav1.Current.ComparePosition (nav2.Current)) {
- case XmlNodeOrder.Same:
- return 0;
- case XmlNodeOrder.After:
- return -1;
- default:
- return 1;
- }
- }
- }
- internal class XPathNavigatorComparer : IComparer
- {
- public static XPathNavigatorComparer Instance = new XPathNavigatorComparer ();
- private XPathNavigatorComparer ()
- {
- }
- public int Compare (object o1, object o2)
- {
- XPathNavigator nav1 = o1 as XPathNavigator;
- XPathNavigator nav2 = o2 as XPathNavigator;
- if (nav1 == null)
- return -1;
- if (nav2 == null)
- return 1;
- switch (nav1.ComparePosition (nav2)) {
- case XmlNodeOrder.Same:
- return 0;
- case XmlNodeOrder.After:
- return 1;
- default:
- return -1;
- }
- }
- }
- }
|