Beispiel #1
0
 /// <summary>
 /// Selects a node set using the specified XPath expression.
 /// </summary>
 public static XmlNodeList SelectNodesSorted(string expression, XmlNode source,
                                             object sortExpression, IComparer comparer, params XPathVariable[] variables)
 {
     return(XmlNodeListFactory.CreateNodeList(
                SelectSorted(expression, source.CreateNavigator(), sortExpression,
                             comparer, variables)));
 }
Beispiel #2
0
        public void List1()
        {
            string xml = @"<?xml version='1.0'?>
<root>
	<element>1</element>
	<element></element>
	<element/>
	<element>2</element>
</root>";

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml);

            XPathNodeIterator iterator = doc.CreateNavigator().Select("//element");
            XmlNodeList       list     = XmlNodeListFactory.CreateNodeList(iterator);

            int count = 0;

            foreach (XmlNode n in list)
            {
                count++;
            }
            Assert.AreEqual(4, count);

            iterator = doc.CreateNavigator().Select("//element");
            list     = XmlNodeListFactory.CreateNodeList(iterator);
            Assert.AreEqual(4, list.Count);
        }
Beispiel #3
0
 /// <summary>
 /// Selects a node set using the specified XPath expression and sort.
 /// </summary>
 /// <remarks>(object, IComparer)
 /// See <see cref="XPathExpression.AddSort(object, IComparer)"/>.
 /// </remarks>
 public static XmlNodeList SelectNodesSorted(string expression, XmlNode source,
                                             object sortExpression, XmlSortOrder order, XmlCaseOrder caseOrder, string lang, XmlDataType dataType)
 {
     return(XmlNodeListFactory.CreateNodeList(
                SelectSorted(expression, source.CreateNavigator(), sortExpression,
                             order, caseOrder, lang, dataType)));
 }
Beispiel #4
0
 /// <summary>
 /// Selects a node set using the specified XPath expression.
 /// </summary>
 public static XmlNodeList SelectNodesSorted(string expression, XmlNode source,
                                             object sortExpression, XmlSortOrder order, XmlCaseOrder caseOrder, string lang, XmlDataType dataType,
                                             XmlPrefix[] prefixes, params XPathVariable[] variables)
 {
     return(XmlNodeListFactory.CreateNodeList(
                SelectSorted(expression, source.CreateNavigator(), sortExpression,
                             order, caseOrder, lang, dataType, prefixes, variables)));
 }
Beispiel #5
0
        /// <summary>
        /// Selects a list of XmlNode matching an XPath expression.
        /// </summary>
        /// <param name="source">A source XmlNode.</param>
        /// <param name="expression">An XPath expression.</param>
        /// <param name="variables">A set of XPathVariables.</param>
        /// <returns>The list of XmlNode matching the XPath expression.</returns>
        /// <remarks>
        /// <para>If <param name="variables" /> is <c>null</c>, or is empty, or contains only one single
        /// value which itself is <c>null</c>, then variables are ignored.</para>
        /// <para>The XPath expression should reference variables as <c>$var</c>.</para>
        /// </remarks>
        public static XmlNodeList SelectNodes(this XmlNode source, XPathExpression expression, params XPathVariable[] variables)
        {
            if (variables == null || variables.Length == 0 || variables[0] == null)
            {
                return(source.SelectNodes(expression));
            }

            var iterator = source.CreateNavigator().Select(expression, variables);

            return(XmlNodeListFactory.CreateNodeList(iterator));
        }
Beispiel #6
0
    /// <summary>
    ///     Selects a list of XmlNode matching an XPath expression.
    /// </summary>
    /// <param name="source">A source XmlNode.</param>
    /// <param name="expression">An XPath expression.</param>
    /// <param name="variables">A set of XPathVariables.</param>
    /// <returns>The list of XmlNode matching the XPath expression.</returns>
    /// <remarks>
    ///     <para>
    ///         If
    ///         <param name="variables" />
    ///         is <c>null</c>, or is empty, or contains only one single
    ///         value which itself is <c>null</c>, then variables are ignored.
    ///     </para>
    ///     <para>The XPath expression should reference variables as <c>$var</c>.</para>
    /// </remarks>
    public static XmlNodeList?SelectNodes(this XmlNode source, string?expression, params XPathVariable[]?variables)
    {
        if (variables == null || variables.Length == 0 || variables[0] == null)
        {
            return(source.SelectNodes(expression ?? string.Empty));
        }

        XPathNodeIterator?iterator = source.CreateNavigator()?.Select(expression ?? string.Empty, variables);

        return(XmlNodeListFactory.CreateNodeList(iterator));
    }
Beispiel #7
0
        public void MultipleCompleteEnumerations()
        {
            XPathNodeIterator nodeIterator = pubsDocument.CreateNavigator().Select("/dsPubs/publishers");
            XmlNodeList       nodeList     = XmlNodeListFactory.CreateNodeList(nodeIterator);

            // Get the first node list enumerator.
            IEnumerator enumerator = nodeList.GetEnumerator();

            while (enumerator.MoveNext())
            {
                // Enumerate all publishers.
            }

            // Get the second node list enumerator.
            enumerator = nodeList.GetEnumerator();

            // Ensure that the second node list enumerator is in a usable state.
            Assert.IsTrue(enumerator.MoveNext());
        }
        public void XmlNodeList()
        {
            var source = new TestSource1();
            var nav    = new NavigableNavigator(source);

            var iterator = nav.Select("/*");

            // but, that requires that the underlying navigator implements IHasXmlNode
            // so it is possible to obtain nodes from the navigator - not possible yet
            var nodes = XmlNodeListFactory.CreateNodeList(iterator);

            Assert.AreEqual(nodes.Count, 1);
            var node = nodes[0];

            Assert.AreEqual(3, node.Attributes.Count);
            Assert.AreEqual("1", node.Attributes["id"].Value);
            Assert.AreEqual("1:p1", node.Attributes["prop1"].Value);
            Assert.AreEqual("1:p2", node.Attributes["prop2"].Value);
            Assert.AreEqual(1, node.ChildNodes.Count);
            Assert.AreEqual("prop3", node.FirstChild.Name);
            Assert.AreEqual("1:p3", node.FirstChild.Value);
        }
Beispiel #9
0
        /// <summary>
        /// Selects a list of nodes matching the XPath expression.
        /// </summary>
        public static XmlNodeList SelectNodes(string expression, XmlNode source, XmlPrefix[] prefixes, params XPathVariable[] variables)
        {
            XPathNodeIterator it = Select(expression, source.CreateNavigator(), prefixes, variables);

            return(XmlNodeListFactory.CreateNodeList(it));
        }
Beispiel #10
0
        /// <summary>
        /// Selects a list of nodes matching the XPath expression.
        /// </summary>
        public static XmlNodeList SelectNodes(string expression, XmlNode source, XmlNamespaceManager context, params XPathVariable[] variables)
        {
            XPathNodeIterator it = Select(expression, source.CreateNavigator(), context, variables);

            return(XmlNodeListFactory.CreateNodeList(it));
        }
Beispiel #11
0
        /// <summary>
        /// Selects a list of nodes matching the XPath expression.
        /// </summary>
        public static XmlNodeList SelectNodes(string expression, XmlNode source)
        {
            XPathNodeIterator it = Select(expression, source.CreateNavigator());

            return(XmlNodeListFactory.CreateNodeList(it));
        }
Beispiel #12
0
        public static XmlNodeList SelectNodes(string expression, XmlNode source, params XmlPrefix[] prefixes)
        {
            var it = Select(expression, source.CreateNavigator(), prefixes);

            return(XmlNodeListFactory.CreateNodeList(it));
        }
Beispiel #13
0
        public static XmlNodeList SelectNodes(string expression, XmlNode source, XmlNamespaceManager context)
        {
            var it = Select(expression, source.CreateNavigator(), context);

            return(XmlNodeListFactory.CreateNodeList(it));
        }