Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- QualifiedCellIdBoolean.cs
- entityreference_tresulttype.cs
- CTreeGenerator.cs
- HeaderedItemsControl.cs
- StreamReader.cs
- SqlDataSourceConfigureFilterForm.cs
- followingsibling.cs
- FileNameEditor.cs
- TdsParserStaticMethods.cs
- GrammarBuilderPhrase.cs
- ObjectMemberMapping.cs
- WindowsGraphics.cs
- Grant.cs
- ParserContext.cs
- XsdBuildProvider.cs
- OdbcParameter.cs
- FileSecurity.cs
- XmlReturnReader.cs
- PolyBezierSegment.cs
- PropertyConverter.cs
- FaultCode.cs
- SystemEvents.cs
- OdbcPermission.cs
- TdsEnums.cs
- BindingCompleteEventArgs.cs
- ProxyAttribute.cs
- SecurityPermission.cs
- AppDomainUnloadedException.cs
- CombinedGeometry.cs
- CustomErrorCollection.cs
- ListBoxItem.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- ReadOnlyTernaryTree.cs
- MetadataItemCollectionFactory.cs
- SmtpClient.cs
- Geometry.cs
- IdnElement.cs
- ReadWriteObjectLock.cs
- EventLogger.cs
- SafeCoTaskMem.cs
- _AutoWebProxyScriptEngine.cs
- ContextMenuStrip.cs
- ObjectItemCachedAssemblyLoader.cs
- TimeSpanSecondsConverter.cs
- SocketCache.cs
- dataobject.cs
- SmiRecordBuffer.cs
- DragDrop.cs
- FactoryId.cs
- DataServiceSaveChangesEventArgs.cs
- VerificationAttribute.cs
- ProgressBarHighlightConverter.cs
- WhitespaceRuleLookup.cs
- RegexInterpreter.cs
- BindingCollection.cs
- WorkflowMarkupSerializationException.cs
- EFAssociationProvider.cs
- ListViewDataItem.cs
- _CommandStream.cs
- TemplateColumn.cs
- AttachedPropertiesService.cs
- TreeViewItem.cs
- infer.cs
- ClientUrlResolverWrapper.cs
- HashHelpers.cs
- CryptoKeySecurity.cs
- StdValidatorsAndConverters.cs
- SecurityManager.cs
- InstanceCreationEditor.cs
- SvcMapFileSerializer.cs
- IgnoreFlushAndCloseStream.cs
- NetDispatcherFaultException.cs
- UInt16Converter.cs
- SerializerProvider.cs
- TrackBarRenderer.cs
- ColumnWidthChangingEvent.cs
- DataGridTablesFactory.cs
- ToolboxItemCollection.cs
- InheritanceContextHelper.cs
- SmiMetaData.cs
- IgnoreFileBuildProvider.cs
- ClipboardData.cs
- CopyOfAction.cs
- Span.cs
- documentation.cs
- ExtendedProperty.cs
- DataFormats.cs
- ListItemCollection.cs
- ErrorCodes.cs
- BindingOperations.cs
- FormViewModeEventArgs.cs
- ActivityTypeResolver.xaml.cs
- CodeMemberField.cs
- Executor.cs
- GenericTextProperties.cs
- Clause.cs
- PerformanceCounter.cs
- SqlFunctionAttribute.cs
- SSmlParser.cs
- GroupBox.cs