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
- ScrollBar.cs
- RtfToken.cs
- SoapObjectReader.cs
- HtmlForm.cs
- DecoderFallback.cs
- DbSource.cs
- SchemaEntity.cs
- DateTimeConstantAttribute.cs
- EpmContentSerializer.cs
- RedistVersionInfo.cs
- VectorKeyFrameCollection.cs
- DbExpressionBuilder.cs
- FixedSOMTableCell.cs
- BindingNavigator.cs
- MultiView.cs
- FreezableDefaultValueFactory.cs
- DataTableMapping.cs
- UnsafeNativeMethodsMilCoreApi.cs
- BaseCodePageEncoding.cs
- XsltException.cs
- COM2ColorConverter.cs
- SecureStringHasher.cs
- DBPropSet.cs
- ToolStripGripRenderEventArgs.cs
- EventHandlerService.cs
- HttpModule.cs
- ProbeMatchesMessageCD1.cs
- PointUtil.cs
- FormsAuthentication.cs
- ToolboxComponentsCreatingEventArgs.cs
- OleDbCommand.cs
- Int32RectValueSerializer.cs
- TextTrailingWordEllipsis.cs
- FullTrustAssemblyCollection.cs
- WindowsIPAddress.cs
- SqlRemoveConstantOrderBy.cs
- Matrix3D.cs
- ShaderRenderModeValidation.cs
- IPAddressCollection.cs
- ConfigXmlComment.cs
- PropertyValidationContext.cs
- Animatable.cs
- ChooseAction.cs
- Calendar.cs
- DateTime.cs
- AnimationStorage.cs
- ObjectQueryState.cs
- UriExt.cs
- PixelFormat.cs
- ContentFilePart.cs
- DynamicArgumentDialog.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- PropertyEmitterBase.cs
- GeneralTransform3DTo2D.cs
- GenericPrincipal.cs
- TcpSocketManager.cs
- PersonalizationEntry.cs
- ScriptingProfileServiceSection.cs
- WsatServiceAddress.cs
- ServiceElementCollection.cs
- MutexSecurity.cs
- Sequence.cs
- BufferedGraphics.cs
- DbConnectionPoolCounters.cs
- CacheSection.cs
- XmlAttributeProperties.cs
- ContainerUIElement3D.cs
- OleDbException.cs
- ToggleButton.cs
- XPathDescendantIterator.cs
- XPathChildIterator.cs
- RecommendedAsConfigurableAttribute.cs
- safex509handles.cs
- XmlReaderSettings.cs
- BamlRecordReader.cs
- ParsedAttributeCollection.cs
- PolyBezierSegment.cs
- DrawingAttributeSerializer.cs
- Utils.cs
- basevalidator.cs
- SqlCommandSet.cs
- MaskedTextBoxTextEditor.cs
- MessageBox.cs
- UpdatePanelControlTrigger.cs
- PathSegmentCollection.cs
- CollectionDataContract.cs
- GridProviderWrapper.cs
- FixedTextBuilder.cs
- ButtonColumn.cs
- ComplexPropertyEntry.cs
- DataTemplateKey.cs
- InstalledFontCollection.cs
- TemplateInstanceAttribute.cs
- SeverityFilter.cs
- SafeUserTokenHandle.cs
- BindingValueChangedEventArgs.cs
- UnsafeNativeMethodsTablet.cs
- XPathBuilder.cs
- PrintPreviewGraphics.cs
- IisTraceWebEventProvider.cs