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
- EncryptedPackageFilter.cs
- ZipFileInfo.cs
- GridViewHeaderRowPresenter.cs
- BigInt.cs
- ViewLoader.cs
- UpdateExpressionVisitor.cs
- Grid.cs
- StorageFunctionMapping.cs
- RoutedEventHandlerInfo.cs
- VariableQuery.cs
- EdmRelationshipRoleAttribute.cs
- GatewayDefinition.cs
- WebPartsSection.cs
- SimpleType.cs
- WindowsToolbarAsMenu.cs
- ClientTargetSection.cs
- HttpValueCollection.cs
- WebPartConnectionsCancelVerb.cs
- UserValidatedEventArgs.cs
- ProcessProtocolHandler.cs
- ResourceDescriptionAttribute.cs
- ExplicitDiscriminatorMap.cs
- SpanIndex.cs
- PageThemeCodeDomTreeGenerator.cs
- InvokeHandlers.cs
- FastPropertyAccessor.cs
- RotationValidation.cs
- BrowsableAttribute.cs
- XmlUrlResolver.cs
- ManagementOperationWatcher.cs
- XPathCompiler.cs
- MissingMemberException.cs
- SystemThemeKey.cs
- TextTreeInsertElementUndoUnit.cs
- SafeRightsManagementPubHandle.cs
- ProtocolsConfiguration.cs
- DynamicMethod.cs
- TableAutomationPeer.cs
- CodePageEncoding.cs
- SequenceDesignerAccessibleObject.cs
- JsonEncodingStreamWrapper.cs
- TabControl.cs
- ViewLoader.cs
- NetStream.cs
- CacheDependency.cs
- LookupNode.cs
- ToolStripItem.cs
- InputBinder.cs
- CodeDomSerializerException.cs
- TextViewSelectionProcessor.cs
- TokenBasedSet.cs
- SafeNativeMethodsOther.cs
- Timer.cs
- Socket.cs
- ChangePassword.cs
- TextChangedEventArgs.cs
- SqlWriter.cs
- MobileControlDesigner.cs
- DocumentViewerHelper.cs
- ConstantProjectedSlot.cs
- WebPartConnectionsConfigureVerb.cs
- processwaithandle.cs
- StrokeSerializer.cs
- ToolStripSettings.cs
- BufferBuilder.cs
- StringDictionaryWithComparer.cs
- Emitter.cs
- DataGridViewRowPostPaintEventArgs.cs
- ServiceNameElement.cs
- Calendar.cs
- LinqDataSource.cs
- Type.cs
- ItemCheckedEvent.cs
- UnknownBitmapEncoder.cs
- SecurityTokenValidationException.cs
- InnerItemCollectionView.cs
- InfoCardSymmetricAlgorithm.cs
- ConfigsHelper.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- UDPClient.cs
- BamlRecordReader.cs
- DoubleStorage.cs
- GradientBrush.cs
- SrgsText.cs
- ContentControl.cs
- WebPartDeleteVerb.cs
- RootBuilder.cs
- DbDeleteCommandTree.cs
- SystemNetworkInterface.cs
- UniformGrid.cs
- SoapIncludeAttribute.cs
- HttpCapabilitiesSectionHandler.cs
- DaylightTime.cs
- ReflectPropertyDescriptor.cs
- DataTableReader.cs
- ItemCollectionEditor.cs
- Helpers.cs
- Brush.cs
- DrawingContextWalker.cs
- SrgsRulesCollection.cs