Code:
/ FX-1434 / FX-1434 / 1.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
- FontSourceCollection.cs
- DatePickerTextBox.cs
- ObjectDataSourceEventArgs.cs
- brushes.cs
- MultiView.cs
- TreeViewEvent.cs
- HostingEnvironmentException.cs
- MetaTableHelper.cs
- ConfigUtil.cs
- XmlDataSourceView.cs
- TaskHelper.cs
- TypeConverterValueSerializer.cs
- TraceUtils.cs
- XmlWriter.cs
- CopyOfAction.cs
- EmissiveMaterial.cs
- WindowsTooltip.cs
- NamespaceInfo.cs
- ChainOfResponsibility.cs
- URI.cs
- XsltConvert.cs
- AnnouncementInnerClientCD1.cs
- TaiwanCalendar.cs
- ExchangeUtilities.cs
- UrlMappingsModule.cs
- ParserOptions.cs
- ExceptQueryOperator.cs
- SliderAutomationPeer.cs
- validation.cs
- PermissionRequestEvidence.cs
- ProfilePropertyNameValidator.cs
- SwitchLevelAttribute.cs
- EdmPropertyAttribute.cs
- ListViewInsertionMark.cs
- HttpListener.cs
- GPPOINTF.cs
- AssemblyAssociatedContentFileAttribute.cs
- TTSVoice.cs
- SqlWebEventProvider.cs
- CalendarDay.cs
- Interfaces.cs
- ListControlConvertEventArgs.cs
- Tile.cs
- AutomationPropertyInfo.cs
- EdgeProfileValidation.cs
- PermissionListSet.cs
- CustomDictionarySources.cs
- DrawListViewSubItemEventArgs.cs
- RangeBase.cs
- PagerSettings.cs
- ObjectListFieldsPage.cs
- SendMailErrorEventArgs.cs
- RepeatInfo.cs
- WebServiceResponseDesigner.cs
- StickyNoteAnnotations.cs
- SystemDiagnosticsSection.cs
- XmlSerializerVersionAttribute.cs
- CalculatedColumn.cs
- XmlProcessingInstruction.cs
- LayoutEvent.cs
- TransactionScope.cs
- glyphs.cs
- CodeAttributeDeclarationCollection.cs
- PassportIdentity.cs
- RenamedEventArgs.cs
- DbConnectionPoolCounters.cs
- HostSecurityManager.cs
- WebServiceReceive.cs
- ReliableSessionBindingElement.cs
- TemplateBamlRecordReader.cs
- EdmMember.cs
- ReadOnlyTernaryTree.cs
- TypedCompletedAsyncResult.cs
- NavigationProperty.cs
- StyleHelper.cs
- Transform3DGroup.cs
- NameValuePermission.cs
- HostExecutionContextManager.cs
- SingleStorage.cs
- cache.cs
- StylusPointPropertyInfoDefaults.cs
- PointLight.cs
- RequestQueryProcessor.cs
- InvalidDocumentContentsException.cs
- SafeNativeMethods.cs
- ResetableIterator.cs
- ReadOnlyMetadataCollection.cs
- XomlCompiler.cs
- CompilationUtil.cs
- ListenerUnsafeNativeMethods.cs
- OLEDB_Util.cs
- MenuItemStyleCollection.cs
- OutOfProcStateClientManager.cs
- WmlValidationSummaryAdapter.cs
- AccessDataSourceView.cs
- ScrollEventArgs.cs
- VisualStateChangedEventArgs.cs
- ApplicationServiceManager.cs
- CapabilitiesState.cs
- Source.cs