You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Node iterators do not work correctly when one of the items is a variable containing the result of a previous XPath2 evaluation. I added the following test to XPath2ExtensionsTest (not the right place):
public void XPath2_IteratorWithVariableTest()
{
System.Collections.Generic.Dictionary<XmlQualifiedName, object> vars = new System.Collections.Generic.Dictionary<XmlQualifiedName, object>();
var nav = GetTodoListDoc().CreateNavigator();
var prov = new NodeProvider(nav);
var result = nav.XPath2Evaluate("/todo-list/todo-item[1]");
vars[new XmlQualifiedName("x")] = result;
var expr = XPath2Expression.Compile("($x, /todo-list/todo-item[2])");
result = expr.Evaluate(prov, vars);
vars[new XmlQualifiedName("y")] = result;
expr = XPath2Expression.Compile("($y, /todo-list/todo-item[3])");
result = expr.Evaluate(prov, vars);
vars[new XmlQualifiedName("z")] = result;
}
After every evaluation, the result contains only one item, which is the selected node. I would expect the result to contain 3 items at the end. The contents of the variable are lost.
The text was updated successfully, but these errors were encountered:
If I 'solidify' the result after evaluating an expression, using
result = BufferedNodeIterator.Preload(result as XPath2NodeIterator);
the test seems to work.
The problem is, that before making the result into a BufferedNodeIterator, result.Count is incorrect.
Then I tried to make the result into a list before assigning it to a variable:
result = (result as XPath2NodeIterator).ToList();
This works, and the Count is right.
Is this the recommended way of storing an iterator in a variable?
nverwer
changed the title
Iterator is not initialized correctly
Iterator content is missing in variable
May 2, 2017
Node iterators do not work correctly when one of the items is a variable containing the result of a previous XPath2 evaluation. I added the following test to XPath2ExtensionsTest (not the right place):
After every evaluation, the
result
contains only one item, which is the selected node. I would expect theresult
to contain 3 items at the end. The contents of the variable are lost.The text was updated successfully, but these errors were encountered: