Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / IDQuery.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripContainerActionList.cs
- WindowShowOrOpenTracker.cs
- WebPartEditorOkVerb.cs
- NativeCompoundFileAPIs.cs
- XhtmlBasicTextViewAdapter.cs
- SystemColors.cs
- XmlComplianceUtil.cs
- Scheduler.cs
- SqlEnums.cs
- Int16KeyFrameCollection.cs
- DataGridRowsPresenter.cs
- WebPartUtil.cs
- HttpListener.cs
- TrimSurroundingWhitespaceAttribute.cs
- SqlTrackingWorkflowInstance.cs
- KeyManager.cs
- CodeChecksumPragma.cs
- PageRanges.cs
- GridViewDesigner.cs
- HelpHtmlBuilder.cs
- MarkupCompilePass1.cs
- LineInfo.cs
- IndexedGlyphRun.cs
- FieldBuilder.cs
- CollectionCodeDomSerializer.cs
- SeekStoryboard.cs
- Point3DCollection.cs
- TextBoxAutoCompleteSourceConverter.cs
- AutomationPatternInfo.cs
- Bits.cs
- ImageFormat.cs
- ProcessModelInfo.cs
- FontStretches.cs
- SqlVersion.cs
- XmlElementAttributes.cs
- BamlTreeNode.cs
- ImageBrush.cs
- DesignerForm.cs
- DesignerWithHeader.cs
- TextBoxAutomationPeer.cs
- SqlWebEventProvider.cs
- MimeXmlImporter.cs
- RegistrySecurity.cs
- TerminatorSinks.cs
- ReadOnlyTernaryTree.cs
- OdbcDataReader.cs
- BasicCellRelation.cs
- StringExpressionSet.cs
- CryptoHelper.cs
- ContentPlaceHolder.cs
- ExternalFile.cs
- FormatterServices.cs
- EventProviderWriter.cs
- HasCopySemanticsAttribute.cs
- MultiBindingExpression.cs
- Vector3DKeyFrameCollection.cs
- SafeMemoryMappedFileHandle.cs
- ImportContext.cs
- AppDomainFactory.cs
- XmlSortKeyAccumulator.cs
- DeviceContext.cs
- OrderedDictionary.cs
- ForeignKeyConstraint.cs
- ValueUtilsSmi.cs
- EarlyBoundInfo.cs
- FreezableOperations.cs
- ZoneButton.cs
- MaterialGroup.cs
- ListMarkerLine.cs
- ProviderIncompatibleException.cs
- Sql8ConformanceChecker.cs
- HScrollProperties.cs
- ValidationSummary.cs
- PerformanceCounterManager.cs
- ReadOnlyCollection.cs
- DataException.cs
- WCFBuildProvider.cs
- Point4D.cs
- SamlNameIdentifierClaimResource.cs
- ZoneIdentityPermission.cs
- FollowerQueueCreator.cs
- TextSelectionHelper.cs
- DiscriminatorMap.cs
- Cursors.cs
- RuntimeConfig.cs
- FixedDSBuilder.cs
- EventArgs.cs
- AstTree.cs
- ValueOfAction.cs
- ScriptResourceHandler.cs
- DependencyObject.cs
- XamlReaderConstants.cs
- DoubleStorage.cs
- BuilderInfo.cs
- AutomationAttributeInfo.cs
- TextParentUndoUnit.cs
- versioninfo.cs
- ImagingCache.cs
- Command.cs
- Brushes.cs