Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Shared / MS / Internal / XmlHelper.cs / 1 / XmlHelper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description:
// Implements some helper functions for Xml nodes.
//
//---------------------------------------------------------------------------
using System;
using System.Xml;
#if WINDOWS_BASE
using MS.Internal.WindowsBase;
#elif PRESENTATION_CORE
using MS.Internal.PresentationCore;
#elif PRESENTATIONFRAMEWORK
using MS.Internal.PresentationFramework;
#elif DRT
using MS.Internal.Drt;
#else
#error Attempt to use FriendAccessAllowedAttribute from an unknown assembly.
using MS.Internal.YourAssemblyName;
#endif
namespace MS.Internal
{
[FriendAccessAllowed]
static class XmlHelper
{
///
/// Return true if the given item is an XML node.
///
internal static bool IsXmlNode(object item)
{
if (item != null)
{
Type type = item.GetType();
return type.FullName.StartsWith("System.Xml", StringComparison.Ordinal) && IsXmlNodeHelper(item);
}
else
return false;
}
// separate function to avoid JIT-ing System.Xml until we have a good reason
private static bool IsXmlNodeHelper(object item)
{
return item is System.Xml.XmlNode;
}
///
/// Return a string by applying an XPath query to an XmlNode.
///
internal static string SelectStringValue(XmlNode node, string query)
{
return SelectStringValue(node, query, null);
}
///
/// Return a string by applying an XPath query to an XmlNode.
///
internal static string SelectStringValue(XmlNode node, string query, XmlNamespaceManager namespaceManager)
{
string strValue;
XmlNode result;
result = node.SelectSingleNode(query, namespaceManager);
if (result != null)
{
strValue = XmlHelper.ExtractString(result);
}
else
{
strValue = String.Empty;
}
return strValue;
}
///
/// Get a string from an XmlNode (of any kind: element, attribute, etc.)
///
internal static string ExtractString(XmlNode node)
{
string value = "";
if (node.NodeType == XmlNodeType.Element)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].NodeType == XmlNodeType.Text)
{
value += node.ChildNodes[i].Value;
}
}
}
else
{
value = node.Value;
}
return value;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description:
// Implements some helper functions for Xml nodes.
//
//---------------------------------------------------------------------------
using System;
using System.Xml;
#if WINDOWS_BASE
using MS.Internal.WindowsBase;
#elif PRESENTATION_CORE
using MS.Internal.PresentationCore;
#elif PRESENTATIONFRAMEWORK
using MS.Internal.PresentationFramework;
#elif DRT
using MS.Internal.Drt;
#else
#error Attempt to use FriendAccessAllowedAttribute from an unknown assembly.
using MS.Internal.YourAssemblyName;
#endif
namespace MS.Internal
{
[FriendAccessAllowed]
static class XmlHelper
{
///
/// Return true if the given item is an XML node.
///
internal static bool IsXmlNode(object item)
{
if (item != null)
{
Type type = item.GetType();
return type.FullName.StartsWith("System.Xml", StringComparison.Ordinal) && IsXmlNodeHelper(item);
}
else
return false;
}
// separate function to avoid JIT-ing System.Xml until we have a good reason
private static bool IsXmlNodeHelper(object item)
{
return item is System.Xml.XmlNode;
}
///
/// Return a string by applying an XPath query to an XmlNode.
///
internal static string SelectStringValue(XmlNode node, string query)
{
return SelectStringValue(node, query, null);
}
///
/// Return a string by applying an XPath query to an XmlNode.
///
internal static string SelectStringValue(XmlNode node, string query, XmlNamespaceManager namespaceManager)
{
string strValue;
XmlNode result;
result = node.SelectSingleNode(query, namespaceManager);
if (result != null)
{
strValue = XmlHelper.ExtractString(result);
}
else
{
strValue = String.Empty;
}
return strValue;
}
///
/// Get a string from an XmlNode (of any kind: element, attribute, etc.)
///
internal static string ExtractString(XmlNode node)
{
string value = "";
if (node.NodeType == XmlNodeType.Element)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].NodeType == XmlNodeType.Text)
{
value += node.ChildNodes[i].Value;
}
}
}
else
{
value = node.Value;
}
return value;
}
}
}
// 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
- LightweightCodeGenerator.cs
- MessageSmuggler.cs
- AuthorizationSection.cs
- ReaderWriterLock.cs
- CodeVariableReferenceExpression.cs
- ContextMenu.cs
- SecureEnvironment.cs
- LoginCancelEventArgs.cs
- DataServiceQueryException.cs
- IProducerConsumerCollection.cs
- HttpContext.cs
- DataGridHeaderBorder.cs
- InputMethodStateTypeInfo.cs
- CodeTypeDeclarationCollection.cs
- WebDisplayNameAttribute.cs
- FieldToken.cs
- TextSpan.cs
- X509Utils.cs
- ReferenceAssemblyAttribute.cs
- ADMembershipUser.cs
- CallContext.cs
- ImageFormat.cs
- StructuralCache.cs
- GlyphCache.cs
- UpdateTracker.cs
- SafeNativeMethods.cs
- MenuEventArgs.cs
- ChangeProcessor.cs
- Debug.cs
- OdbcParameterCollection.cs
- CheckPair.cs
- ToolStripContentPanel.cs
- ClaimSet.cs
- SafeNativeMethodsOther.cs
- CodePageEncoding.cs
- DataControlReferenceCollection.cs
- XPathQueryGenerator.cs
- ByeOperationCD1AsyncResult.cs
- WebBodyFormatMessageProperty.cs
- CallSiteOps.cs
- CharacterHit.cs
- VirtualPathProvider.cs
- ScrollViewer.cs
- FullTrustAssembliesSection.cs
- SynthesizerStateChangedEventArgs.cs
- UnsafeNativeMethods.cs
- DecimalConstantAttribute.cs
- SourceItem.cs
- InfoCardAsymmetricCrypto.cs
- FtpCachePolicyElement.cs
- SelectionGlyphBase.cs
- WebPartEditorCancelVerb.cs
- ping.cs
- AttributeCollection.cs
- webproxy.cs
- StopRoutingHandler.cs
- ModelItemDictionaryImpl.cs
- SingleConverter.cs
- WebPartConnectionsCloseVerb.cs
- XmlRootAttribute.cs
- CriticalExceptions.cs
- CopyOnWriteList.cs
- StorageComplexPropertyMapping.cs
- HttpResponseWrapper.cs
- ErrorWebPart.cs
- DivideByZeroException.cs
- DependencyObjectProvider.cs
- ListViewGroupConverter.cs
- SqlProfileProvider.cs
- SslStreamSecurityElement.cs
- DispatcherEventArgs.cs
- ThreadAttributes.cs
- RegexCode.cs
- ErrorProvider.cs
- ConnectionManagementSection.cs
- ReflectPropertyDescriptor.cs
- SafeLocalMemHandle.cs
- DesignTimeValidationFeature.cs
- EventProxy.cs
- PropertyChangingEventArgs.cs
- StylusPointPropertyUnit.cs
- SocketException.cs
- BitmapEffect.cs
- FastEncoderWindow.cs
- Light.cs
- HandlerBase.cs
- ListenerConstants.cs
- cookie.cs
- ApplicationServiceHelper.cs
- OleAutBinder.cs
- EntityDataSourceChangingEventArgs.cs
- CellTreeNode.cs
- InlineCollection.cs
- CannotUnloadAppDomainException.cs
- ControlBindingsCollection.cs
- XmlSerializationWriter.cs
- DropShadowBitmapEffect.cs
- StateDesignerConnector.cs
- WarningException.cs
- TextParagraph.cs