Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 1 / IDQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; using System.Diagnostics; using System.Collections.Generic; internal sealed class IDQuery : CacheOutputQuery { public IDQuery(Query arg) : base(arg) {} private IDQuery(IDQuery other) : base(other) { } public override object Evaluate(XPathNodeIterator context) { object argVal = base.Evaluate(context); XPathNavigator contextNode = context.Current.Clone(); switch (GetXPathType(argVal)) { case XPathResultType.NodeSet: XPathNavigator temp; while ((temp = input.Advance()) != null) { ProcessIds(contextNode, temp.Value); } break; case XPathResultType.String: ProcessIds(contextNode, (string)argVal); break; case XPathResultType.Number: ProcessIds(contextNode, StringFunctions.toString((double)argVal)); break; case XPathResultType.Boolean: ProcessIds(contextNode, StringFunctions.toString((bool)argVal)); break; case XPathResultType_Navigator: ProcessIds(contextNode, ((XPathNavigator)argVal).Value); break; } return this; } void ProcessIds(XPathNavigator contextNode, string val) { string[] ids = XmlConvert.SplitString(val); for (int idx = 0; idx < ids.Length; idx++) { if (contextNode.MoveToId(ids[idx])) { Insert(outputBuffer, contextNode); } } } public override XPathNavigator MatchNode(XPathNavigator context) { Evaluate(new XPathSingletonIterator(context, /*moved:*/true)); XPathNavigator result; while ((result = Advance()) != null) { if (result.IsSamePosition(context)) { return context; } } return null; } public override XPathNodeIterator Clone() { return new IDQuery(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; using System.Diagnostics; using System.Collections.Generic; internal sealed class IDQuery : CacheOutputQuery { public IDQuery(Query arg) : base(arg) {} private IDQuery(IDQuery other) : base(other) { } public override object Evaluate(XPathNodeIterator context) { object argVal = base.Evaluate(context); XPathNavigator contextNode = context.Current.Clone(); switch (GetXPathType(argVal)) { case XPathResultType.NodeSet: XPathNavigator temp; while ((temp = input.Advance()) != null) { ProcessIds(contextNode, temp.Value); } break; case XPathResultType.String: ProcessIds(contextNode, (string)argVal); break; case XPathResultType.Number: ProcessIds(contextNode, StringFunctions.toString((double)argVal)); break; case XPathResultType.Boolean: ProcessIds(contextNode, StringFunctions.toString((bool)argVal)); break; case XPathResultType_Navigator: ProcessIds(contextNode, ((XPathNavigator)argVal).Value); break; } return this; } void ProcessIds(XPathNavigator contextNode, string val) { string[] ids = XmlConvert.SplitString(val); for (int idx = 0; idx < ids.Length; idx++) { if (contextNode.MoveToId(ids[idx])) { Insert(outputBuffer, contextNode); } } } public override XPathNavigator MatchNode(XPathNavigator context) { Evaluate(new XPathSingletonIterator(context, /*moved:*/true)); XPathNavigator result; while ((result = Advance()) != null) { if (result.IsSamePosition(context)) { return context; } } return null; } public override XPathNodeIterator Clone() { return new IDQuery(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageThemeCodeDomTreeGenerator.cs
- SessionSwitchEventArgs.cs
- JsonDataContract.cs
- WorkflowServiceInstance.cs
- ScrollPattern.cs
- SafeArrayRankMismatchException.cs
- QilList.cs
- ObjectPropertyMapping.cs
- XmlAnyAttributeAttribute.cs
- OperationContext.cs
- MimePart.cs
- DataGridViewComboBoxCell.cs
- GroupJoinQueryOperator.cs
- COM2Properties.cs
- ScriptControl.cs
- GridViewAutomationPeer.cs
- DescendantOverDescendantQuery.cs
- WizardStepCollectionEditor.cs
- mediapermission.cs
- namescope.cs
- WebPartManager.cs
- unsafeIndexingFilterStream.cs
- DataGridViewCellParsingEventArgs.cs
- WebPartsPersonalization.cs
- regiisutil.cs
- TimerElapsedEvenArgs.cs
- ResourceCategoryAttribute.cs
- QuaternionValueSerializer.cs
- X509CertificateValidator.cs
- MultiSelector.cs
- MutexSecurity.cs
- TypedColumnHandler.cs
- XPathSingletonIterator.cs
- FullTextState.cs
- Symbol.cs
- CellRelation.cs
- ConnectionConsumerAttribute.cs
- Util.cs
- WebBrowsableAttribute.cs
- Panel.cs
- InheritablePropertyChangeInfo.cs
- XamlPoint3DCollectionSerializer.cs
- UidManager.cs
- DataGridViewImageColumn.cs
- Application.cs
- MultipleViewPattern.cs
- SynchronizedDispatch.cs
- WeakEventManager.cs
- figurelengthconverter.cs
- StrokeIntersection.cs
- FileInfo.cs
- UniformGrid.cs
- ToolStripDropDown.cs
- TrayIconDesigner.cs
- PageBreakRecord.cs
- CoreSwitches.cs
- EntityDataSourceState.cs
- FlowLayoutPanel.cs
- PriorityQueue.cs
- KeyEvent.cs
- ReadOnlyDictionary.cs
- CodeDefaultValueExpression.cs
- CdpEqualityComparer.cs
- ToolboxItem.cs
- BitmapMetadata.cs
- HttpClientCertificate.cs
- Stacktrace.cs
- XmlCharType.cs
- SQLMoney.cs
- BodyWriter.cs
- CompilerScope.cs
- RenderCapability.cs
- XhtmlConformanceSection.cs
- DependencyPropertyKind.cs
- SafeWaitHandle.cs
- CodeTypeReference.cs
- WmlTextViewAdapter.cs
- SimpleRecyclingCache.cs
- DBConcurrencyException.cs
- EntityConnectionStringBuilder.cs
- RowToParametersTransformer.cs
- CommentAction.cs
- KeyGestureConverter.cs
- RenderCapability.cs
- ResourceContainer.cs
- RectangleGeometry.cs
- XmlSchemaAnyAttribute.cs
- PkcsMisc.cs
- TreeViewImageKeyConverter.cs
- FixedSOMPageElement.cs
- MouseEventArgs.cs
- ObjectManager.cs
- SqlProviderManifest.cs
- Vector3DCollectionConverter.cs
- HtmlElement.cs
- XmlEntity.cs
- SplayTreeNode.cs
- TreeViewCancelEvent.cs
- FormatControl.cs
- WebPartUserCapability.cs