Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TimeEnumHelper.cs
- ActivityInstanceReference.cs
- EventHandlersStore.cs
- ErrorProvider.cs
- WindowsIdentity.cs
- SByteStorage.cs
- ObjectListCommand.cs
- Image.cs
- FirstMatchCodeGroup.cs
- XmlSchemaCompilationSettings.cs
- InsufficientExecutionStackException.cs
- PasswordDeriveBytes.cs
- Selection.cs
- InterleavedZipPartStream.cs
- XmlEnumAttribute.cs
- EntityTypeEmitter.cs
- BufferedGraphicsManager.cs
- TextTreeTextNode.cs
- OleDbConnectionFactory.cs
- SqlParameter.cs
- ConnectionInterfaceCollection.cs
- ErrorWebPart.cs
- DATA_BLOB.cs
- WindowsFormsSynchronizationContext.cs
- FixedElement.cs
- PropertyCollection.cs
- NullRuntimeConfig.cs
- VoiceObjectToken.cs
- X509UI.cs
- QueryContinueDragEvent.cs
- Bitmap.cs
- MonthCalendar.cs
- SignatureDescription.cs
- WebBrowser.cs
- DesignerGenericWebPart.cs
- PersistenceTypeAttribute.cs
- CultureNotFoundException.cs
- TextModifier.cs
- FieldNameLookup.cs
- RecognitionEventArgs.cs
- NativeMethods.cs
- DataContractJsonSerializerOperationBehavior.cs
- ProgressBarRenderer.cs
- PersonalizationDictionary.cs
- CatalogZoneDesigner.cs
- RenderingEventArgs.cs
- RestClientProxyHandler.cs
- StyleCollectionEditor.cs
- AgileSafeNativeMemoryHandle.cs
- GridEntryCollection.cs
- WebServiceErrorEvent.cs
- ContextMarshalException.cs
- BamlResourceSerializer.cs
- TimeoutValidationAttribute.cs
- CompilerError.cs
- DoubleAnimationBase.cs
- RecommendedAsConfigurableAttribute.cs
- MarkedHighlightComponent.cs
- CultureTableRecord.cs
- cookie.cs
- AssemblyInfo.cs
- Point3DConverter.cs
- BufferBuilder.cs
- MimeParameters.cs
- BackStopAuthenticationModule.cs
- DataTableMapping.cs
- CodeNamespace.cs
- SortDescription.cs
- FilteredAttributeCollection.cs
- NetworkInterface.cs
- CodeIterationStatement.cs
- AttachedPropertyMethodSelector.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- UIntPtr.cs
- CreateSequenceResponse.cs
- SubMenuStyle.cs
- EnvelopedPkcs7.cs
- _UriTypeConverter.cs
- Hashtable.cs
- ProgressBar.cs
- TripleDES.cs
- MetadataUtilsSmi.cs
- URLAttribute.cs
- DrawToolTipEventArgs.cs
- Internal.cs
- XMLUtil.cs
- TabPageDesigner.cs
- CompositeTypefaceMetrics.cs
- HotCommands.cs
- EntityDataSourceStatementEditor.cs
- BindingOperations.cs
- ObjectSet.cs
- WindowsGraphicsCacheManager.cs
- TaiwanLunisolarCalendar.cs
- SqlNodeAnnotations.cs
- DebuggerService.cs
- EntityCommandCompilationException.cs
- StringHandle.cs
- EditingCoordinator.cs
- StateManagedCollection.cs