Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rect.cs
- TextTreePropertyUndoUnit.cs
- EnlistmentState.cs
- ResourceDictionaryCollection.cs
- MostlySingletonList.cs
- ProcessHost.cs
- EventSchemaTraceListener.cs
- IndentedWriter.cs
- PeerCredentialElement.cs
- ShortcutKeysEditor.cs
- ClickablePoint.cs
- _NtlmClient.cs
- SourceFilter.cs
- _HeaderInfoTable.cs
- AnimationClock.cs
- MemberHolder.cs
- MemoryMappedViewStream.cs
- CheckBoxStandardAdapter.cs
- CatalogPartChrome.cs
- DecimalAnimationUsingKeyFrames.cs
- CorrelationKeyCalculator.cs
- PasswordDeriveBytes.cs
- XmlDataProvider.cs
- SchemaElement.cs
- HttpApplication.cs
- NavigationEventArgs.cs
- SqlFlattener.cs
- SerializationException.cs
- DbProviderFactoriesConfigurationHandler.cs
- ComponentResourceKeyConverter.cs
- iisPickupDirectory.cs
- Util.cs
- ToolStripLocationCancelEventArgs.cs
- ValueSerializerAttribute.cs
- TypeUtil.cs
- ManifestResourceInfo.cs
- ValidationEventArgs.cs
- StylusLogic.cs
- DbConnectionPoolCounters.cs
- ExceptionCollection.cs
- BufferedWebEventProvider.cs
- Bidi.cs
- TableLayout.cs
- Comparer.cs
- ellipse.cs
- CollectionEditorDialog.cs
- DataListItem.cs
- CapacityStreamGeometryContext.cs
- TextBreakpoint.cs
- TextContainerChangedEventArgs.cs
- ObjectToken.cs
- TextBlockAutomationPeer.cs
- shaperfactoryquerycacheentry.cs
- SafeCloseHandleCritical.cs
- DataTableMapping.cs
- WebScriptEnablingElement.cs
- ToolStripItemCollection.cs
- SignatureDescription.cs
- validation.cs
- XmlLanguage.cs
- GridErrorDlg.cs
- KeyedCollection.cs
- DynamicRendererThreadManager.cs
- BezierSegment.cs
- Misc.cs
- WebRequestModuleElementCollection.cs
- PageCodeDomTreeGenerator.cs
- RNGCryptoServiceProvider.cs
- DataReceivedEventArgs.cs
- CellPartitioner.cs
- ApplicationException.cs
- TextEffect.cs
- RawStylusInputCustomData.cs
- ReferenceAssemblyAttribute.cs
- WebPartAuthorizationEventArgs.cs
- WindowsListViewSubItem.cs
- safelink.cs
- NavigationService.cs
- AsyncPostBackTrigger.cs
- WebServiceReceiveDesigner.cs
- DataTemplateKey.cs
- HttpModuleCollection.cs
- ResolveCriteriaCD1.cs
- TimeSpanConverter.cs
- webproxy.cs
- SerialPinChanges.cs
- Selector.cs
- WorkflowInstanceQuery.cs
- DateTimeParse.cs
- coordinatorscratchpad.cs
- _Win32.cs
- BufferModeSettings.cs
- SizeAnimationUsingKeyFrames.cs
- AnonymousIdentificationSection.cs
- CmsUtils.cs
- SafeHandle.cs
- ZoneButton.cs
- FormCollection.cs
- DataGridTableCollection.cs
- CodeSubDirectory.cs