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
- DataTemplateSelector.cs
- StaticExtension.cs
- FullTrustAssembly.cs
- SplitContainer.cs
- BitVector32.cs
- PriorityItem.cs
- WinInetCache.cs
- SettingsPropertyNotFoundException.cs
- LinkLabel.cs
- EntityConnectionStringBuilder.cs
- ResXResourceReader.cs
- ChineseLunisolarCalendar.cs
- StateValidator.cs
- ActivityMarkupSerializationProvider.cs
- WindowsEditBoxRange.cs
- SessionMode.cs
- WebInvokeAttribute.cs
- AppDomainShutdownMonitor.cs
- TableLayout.cs
- RealizationContext.cs
- WmlSelectionListAdapter.cs
- SafeRightsManagementPubHandle.cs
- SqlCacheDependencyDatabase.cs
- ImageKeyConverter.cs
- InlineObject.cs
- UIElementAutomationPeer.cs
- SocketInformation.cs
- CultureInfoConverter.cs
- DataContractJsonSerializerOperationBehavior.cs
- RegistryPermission.cs
- WebZone.cs
- RoleManagerEventArgs.cs
- SingleAnimation.cs
- DesignerOptions.cs
- EncoderReplacementFallback.cs
- Graph.cs
- ClientData.cs
- ProcessModule.cs
- VisualProxy.cs
- HttpListenerContext.cs
- ArraySet.cs
- XmlWriterTraceListener.cs
- BaseTemplateBuildProvider.cs
- NativeMethods.cs
- DataRecordObjectView.cs
- SubpageParagraph.cs
- Material.cs
- DoubleLinkList.cs
- SafeNativeMethods.cs
- BackStopAuthenticationModule.cs
- SafeFileMapViewHandle.cs
- BoundField.cs
- TreeSet.cs
- KeyBinding.cs
- LinqDataSourceDisposeEventArgs.cs
- SchemaMerger.cs
- ErrorProvider.cs
- NameScope.cs
- RegionInfo.cs
- MouseCaptureWithinProperty.cs
- ImagingCache.cs
- HandleCollector.cs
- InstanceDataCollectionCollection.cs
- Constants.cs
- ProxyWebPartConnectionCollection.cs
- XmlSchema.cs
- manifestimages.cs
- ValueQuery.cs
- DragEventArgs.cs
- SynchronizationLockException.cs
- CustomSignedXml.cs
- EmbeddedObject.cs
- SignatureDescription.cs
- QueryOptionExpression.cs
- PageCatalogPart.cs
- FormViewUpdatedEventArgs.cs
- _HeaderInfo.cs
- ControlAdapter.cs
- ExtendedProperty.cs
- MarshalDirectiveException.cs
- HttpException.cs
- _ListenerResponseStream.cs
- ImageField.cs
- XamlGridLengthSerializer.cs
- WebPartCancelEventArgs.cs
- ControlBindingsCollection.cs
- Ticks.cs
- ReflectPropertyDescriptor.cs
- Enlistment.cs
- Rectangle.cs
- Subordinate.cs
- InstancePersistence.cs
- VisualBrush.cs
- CustomAssemblyResolver.cs
- AutoResetEvent.cs
- WCFServiceClientProxyGenerator.cs
- ObjectDataSourceFilteringEventArgs.cs
- NegationPusher.cs
- SizeAnimation.cs
- TimelineClockCollection.cs