Still looking for a sponsor
The Silverlight framework is restricted in comparison with .Net framework. It does not provide the XmlDocument class, that has the InnerText property. Silverlight applications should use XDocument instead of XmlDocument. Following code is an extension method for the XNode class that implements InnerText functionality.
public static string InnerText(this XNode xNode)
{
bool isContainer = xNode is XContainer;
if (!isContainer)
{
switch (xNode.NodeType)
{
case XmlNodeType.Text:
case XmlNodeType.CDATA:
case XmlNodeType.Whitespace:
case XmlNodeType.SignificantWhitespace:
return xNode.ToString();
default:
return string.Empty;
}
}
else
{
XContainer xContainer = (XContainer)xNode;
StringBuilder sb = new StringBuilder();
for (XNode node = xContainer.FirstNode; node != null; node = node.NextNode)
sb.Append(node.InnerText());
return sb.ToString();
}
}
XContainer is a type of xml nodes that contain child nodes and they should be processed recursively.