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
- WebPartAuthorizationEventArgs.cs
- UndoManager.cs
- XmlAttributeAttribute.cs
- StyleCollection.cs
- BinaryWriter.cs
- DeferredSelectedIndexReference.cs
- DrawingBrush.cs
- QueryableFilterRepeater.cs
- SplitContainerDesigner.cs
- MethodImplAttribute.cs
- StaticSiteMapProvider.cs
- OperatingSystem.cs
- XhtmlBasicCalendarAdapter.cs
- sqlstateclientmanager.cs
- ProviderBase.cs
- DefaultHttpHandler.cs
- Pair.cs
- TaskFileService.cs
- DateTimeParse.cs
- ConfigXmlText.cs
- ModelItemDictionaryImpl.cs
- Calendar.cs
- Int64Storage.cs
- loginstatus.cs
- ArgIterator.cs
- DataObjectAttribute.cs
- OrderedEnumerableRowCollection.cs
- DeploymentSectionCache.cs
- ChannelManager.cs
- HttpServerVarsCollection.cs
- MenuAdapter.cs
- PackageController.cs
- ApplicationBuildProvider.cs
- NavigationProgressEventArgs.cs
- VectorAnimationBase.cs
- DiscoveryOperationContext.cs
- HyperLinkColumn.cs
- TextReader.cs
- Screen.cs
- ArrayList.cs
- PasswordDeriveBytes.cs
- GlyphCollection.cs
- CLRBindingWorker.cs
- Exception.cs
- BamlBinaryWriter.cs
- XLinq.cs
- BitmapCodecInfoInternal.cs
- Bidi.cs
- SerialPort.cs
- UserPersonalizationStateInfo.cs
- EnlistmentState.cs
- Activator.cs
- LinkConverter.cs
- securitycriticaldataformultiplegetandset.cs
- TextEditorCharacters.cs
- ConnectionProviderAttribute.cs
- MarkupCompiler.cs
- DataServiceQueryException.cs
- GradientBrush.cs
- CodeSubDirectoriesCollection.cs
- DataGridViewCellParsingEventArgs.cs
- Registration.cs
- MenuCommands.cs
- RangeValuePattern.cs
- ToolStripActionList.cs
- SystemFonts.cs
- smtppermission.cs
- QueryReaderSettings.cs
- ApplicationServiceManager.cs
- TrustLevel.cs
- RowsCopiedEventArgs.cs
- XmlReflectionMember.cs
- DoubleLink.cs
- Shape.cs
- OneWayChannelListener.cs
- DataGridViewCellParsingEventArgs.cs
- MetadataItemCollectionFactory.cs
- ActivityXamlServices.cs
- UriScheme.cs
- ColorAnimation.cs
- CompositeFontFamily.cs
- JpegBitmapEncoder.cs
- XmlWriterSettings.cs
- NativeMethods.cs
- WorkflowInstanceTerminatedRecord.cs
- DecoderFallback.cs
- ImageInfo.cs
- FreeFormPanel.cs
- RootBrowserWindowAutomationPeer.cs
- InternalControlCollection.cs
- Label.cs
- NamespaceMapping.cs
- StrongName.cs
- BuilderPropertyEntry.cs
- ReflectEventDescriptor.cs
- IssuedSecurityTokenProvider.cs
- Sentence.cs
- HScrollBar.cs
- DataException.cs
- ContractListAdapter.cs