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
- PTProvider.cs
- CodeCommentStatementCollection.cs
- WebResponse.cs
- ProcessProtocolHandler.cs
- newinstructionaction.cs
- PropertyEntry.cs
- CustomSignedXml.cs
- OleDbConnectionInternal.cs
- BoundField.cs
- AssemblyAssociatedContentFileAttribute.cs
- MetadataExporter.cs
- HtmlSelectionListAdapter.cs
- DesignerVerb.cs
- _BaseOverlappedAsyncResult.cs
- XPathQilFactory.cs
- EmptyReadOnlyDictionaryInternal.cs
- WorkflowInstance.cs
- ToolStripPanelRenderEventArgs.cs
- ForAllOperator.cs
- DataSourceControlBuilder.cs
- DesignerForm.cs
- QilChoice.cs
- ConfigsHelper.cs
- ThicknessAnimationBase.cs
- BindingValueChangedEventArgs.cs
- TypeDelegator.cs
- OleDbCommand.cs
- RepeaterItemEventArgs.cs
- ValueSerializer.cs
- DataBindingExpressionBuilder.cs
- MultiPropertyDescriptorGridEntry.cs
- BuildManagerHost.cs
- HtmlTableCellCollection.cs
- EntityClientCacheEntry.cs
- ErrorFormatterPage.cs
- SystemTcpStatistics.cs
- SchemaCompiler.cs
- RegexCharClass.cs
- SplineKeyFrames.cs
- SchemaMerger.cs
- ReaderContextStackData.cs
- NotifyParentPropertyAttribute.cs
- XmlDataImplementation.cs
- WrappedIUnknown.cs
- HtmlInputPassword.cs
- TypeDescriptionProviderAttribute.cs
- RequestQueryParser.cs
- URIFormatException.cs
- WindowsTokenRoleProvider.cs
- SQLInt32.cs
- CollectionViewGroup.cs
- UInt64Storage.cs
- CodeLabeledStatement.cs
- XsltOutput.cs
- LinkedList.cs
- QuaternionRotation3D.cs
- RequestCacheManager.cs
- ContractTypeNameCollection.cs
- ParserStack.cs
- XpsResourcePolicy.cs
- ColorTransform.cs
- ExpandCollapseProviderWrapper.cs
- TypeBuilderInstantiation.cs
- CompilerCollection.cs
- WindowManager.cs
- ISO2022Encoding.cs
- Int64AnimationUsingKeyFrames.cs
- BrowsableAttribute.cs
- OSFeature.cs
- Enum.cs
- CodePageUtils.cs
- SerializationException.cs
- DecimalAnimationBase.cs
- QualifiedCellIdBoolean.cs
- ImageAttributes.cs
- MarshalDirectiveException.cs
- Model3DCollection.cs
- SupportingTokenSpecification.cs
- HttpHostedTransportConfiguration.cs
- MenuCommandsChangedEventArgs.cs
- ExpressionParser.cs
- AuthenticationModuleElement.cs
- InfocardClientCredentials.cs
- SignatureHelper.cs
- XmlResolver.cs
- StrokeCollectionConverter.cs
- FileUtil.cs
- WebBrowserBase.cs
- QilReplaceVisitor.cs
- ResourceProviderFactory.cs
- NameValueConfigurationElement.cs
- OdbcError.cs
- CodeTypeDeclarationCollection.cs
- WindowsFormsSynchronizationContext.cs
- StringExpressionSet.cs
- SecurityTokenParameters.cs
- SoundPlayerAction.cs
- PerfCounterSection.cs
- StatusBarDrawItemEvent.cs
- WebDescriptionAttribute.cs