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
- TextTreeDeleteContentUndoUnit.cs
- XmlTypeAttribute.cs
- Point3DAnimation.cs
- Dictionary.cs
- DataGridViewRowCollection.cs
- DeploymentExceptionMapper.cs
- Hex.cs
- SQLInt32.cs
- ControlHelper.cs
- SafeHGlobalHandleCritical.cs
- ProtocolsConfigurationHandler.cs
- printdlgexmarshaler.cs
- DataGridViewComboBoxEditingControl.cs
- FrameDimension.cs
- Bits.cs
- ButtonFlatAdapter.cs
- SrgsElementFactory.cs
- WindowsListViewItemCheckBox.cs
- PngBitmapEncoder.cs
- DataGridViewColumnConverter.cs
- ProxyBuilder.cs
- RemoteWebConfigurationHost.cs
- NavigatorOutput.cs
- StorageTypeMapping.cs
- FixedSOMContainer.cs
- WindowPatternIdentifiers.cs
- TryCatchDesigner.xaml.cs
- PaginationProgressEventArgs.cs
- DropTarget.cs
- WindowsRegion.cs
- DispatcherExceptionEventArgs.cs
- assertwrapper.cs
- StateValidator.cs
- CodeTypeOfExpression.cs
- SimpleWorkerRequest.cs
- HelpEvent.cs
- _SSPISessionCache.cs
- WebHostUnsafeNativeMethods.cs
- ReadOnlyAttribute.cs
- ResourceWriter.cs
- DBConcurrencyException.cs
- _FixedSizeReader.cs
- ListView.cs
- HybridObjectCache.cs
- ListViewTableCell.cs
- AnnotationHighlightLayer.cs
- Point3DCollection.cs
- ScalarType.cs
- CompilationUnit.cs
- _CookieModule.cs
- SoapTransportImporter.cs
- HttpCookieCollection.cs
- HttpUnhandledOperationInvoker.cs
- InstancePersistenceEvent.cs
- EventProvider.cs
- TextModifier.cs
- WebPartZoneCollection.cs
- invalidudtexception.cs
- RepeatButtonAutomationPeer.cs
- FormViewCommandEventArgs.cs
- VerificationAttribute.cs
- TypeSchema.cs
- ServicePointManager.cs
- ImageCodecInfo.cs
- DesignTimeVisibleAttribute.cs
- MediaSystem.cs
- ToolStripPanelRenderEventArgs.cs
- ClientFormsAuthenticationCredentials.cs
- FixUpCollection.cs
- PreProcessor.cs
- AutoResetEvent.cs
- DatagridviewDisplayedBandsData.cs
- Section.cs
- NamespaceInfo.cs
- DataServices.cs
- ExportOptions.cs
- WindowsPrincipal.cs
- HostSecurityManager.cs
- SafeFileHandle.cs
- SqlCacheDependencyDatabaseCollection.cs
- Vertex.cs
- DataGridViewHeaderCell.cs
- ChangeNode.cs
- HttpWebResponse.cs
- NumberEdit.cs
- DataTableNewRowEvent.cs
- HandledEventArgs.cs
- HttpHandlerAction.cs
- ReferencedCollectionType.cs
- Annotation.cs
- TreeNodeClickEventArgs.cs
- KeyConverter.cs
- TextTabProperties.cs
- ClrProviderManifest.cs
- _ContextAwareResult.cs
- SocketPermission.cs
- RegexWorker.cs
- TextContainerHelper.cs
- WebPartEditorApplyVerb.cs
- Scripts.cs