Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 3 / 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
- TextTreeInsertElementUndoUnit.cs
- NavigationPropertyEmitter.cs
- BigInt.cs
- PropertyGeneratedEventArgs.cs
- StringExpressionSet.cs
- XdrBuilder.cs
- UserControlCodeDomTreeGenerator.cs
- SafeThreadHandle.cs
- GiveFeedbackEvent.cs
- SchemaImporterExtensionsSection.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- GestureRecognitionResult.cs
- RemoteWebConfigurationHostStream.cs
- ScriptingRoleServiceSection.cs
- FindCriteriaApril2005.cs
- DataRowExtensions.cs
- StatusBarItem.cs
- VisemeEventArgs.cs
- FixedDocumentPaginator.cs
- ListSourceHelper.cs
- CompiledXpathExpr.cs
- CodeDelegateCreateExpression.cs
- SiteMapNodeItem.cs
- StructuredProperty.cs
- TimelineGroup.cs
- TreeSet.cs
- StylusSystemGestureEventArgs.cs
- DisplayMemberTemplateSelector.cs
- WebDisplayNameAttribute.cs
- XmlSchemaSequence.cs
- DrawingAttributesDefaultValueFactory.cs
- RemotingConfiguration.cs
- WebEventTraceProvider.cs
- StringAnimationBase.cs
- HebrewCalendar.cs
- DesignerActionVerbList.cs
- DataRowComparer.cs
- FacetEnabledSchemaElement.cs
- XmlSchema.cs
- DataServiceHost.cs
- PreservationFileWriter.cs
- HttpResponseBase.cs
- TrackingLocation.cs
- DoubleMinMaxAggregationOperator.cs
- GetCardDetailsRequest.cs
- QueryValue.cs
- TraceXPathNavigator.cs
- ParseChildrenAsPropertiesAttribute.cs
- GB18030Encoding.cs
- WmfPlaceableFileHeader.cs
- UnknownBitmapDecoder.cs
- EncoderParameters.cs
- RegexRunnerFactory.cs
- MetadataItem.cs
- SQLGuidStorage.cs
- NopReturnReader.cs
- GeometryValueSerializer.cs
- Wildcard.cs
- SafeSecurityHelper.cs
- DynamicPropertyReader.cs
- RefExpr.cs
- SafeReversePInvokeHandle.cs
- StyleXamlParser.cs
- QilInvokeEarlyBound.cs
- DataGridCellInfo.cs
- XmlSchemaException.cs
- ContainerUIElement3D.cs
- LoginView.cs
- BinaryNode.cs
- ScrollEvent.cs
- AutoScrollExpandMessageFilter.cs
- SplineKeyFrames.cs
- DataGridCellClipboardEventArgs.cs
- BinaryUtilClasses.cs
- DataSourceHelper.cs
- DrawingVisual.cs
- WeakReferenceList.cs
- DefaultValidator.cs
- PropertyIDSet.cs
- HTTPNotFoundHandler.cs
- DrawingAttributes.cs
- SafeNativeMethodsMilCoreApi.cs
- Transform3D.cs
- XPathNodeInfoAtom.cs
- ErrorRuntimeConfig.cs
- DbFunctionCommandTree.cs
- ImpersonationContext.cs
- OracleParameter.cs
- ModelItemKeyValuePair.cs
- Decimal.cs
- Directory.cs
- XmlSchemaDatatype.cs
- CompilerInfo.cs
- DataSpaceManager.cs
- InputLangChangeEvent.cs
- UncommonField.cs
- ToolStripProgressBar.cs
- XmlIlGenerator.cs
- MultilineStringConverter.cs
- UrlRoutingModule.cs