まず、現在のコードでは、XML を XmlDocument オブジェクトに読み込む必要はありません。たとえば、次は同じことを行います。
Public Function GroveHallFromRss() As String
Dim webClient As System.Net.WebClient = New System.Net.WebClient()
Dim ourUrl As String = "http://abc.123.org/RSSSyndicator.aspx?type=N&range=currentyear&expire=Y&location=2-7-165&rssid=18"
Dim streamReader As StreamReader = New StreamReader(webClient.OpenRead(ourUrl))
Return streamReader.ReadToEnd()
End Function
ただし、ドキュメントの適切なインデントに関する質問には答えません。そのための最も簡単な方法は、スタイルシートを適用することだと思います。次の XSLT スクリプトは、XML ドキュメントをきれいにします。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
次のようにして、XSLT スクリプトをコードに適用できます。
Public Function GroveHallFromRss() As String
Dim webClient As System.Net.WebClient = New System.Net.WebClient()
Dim ourUrl As String = "http://abc.123.org/RSSSyndicator.aspx?type=N&range=currentyear&expire=Y&location=2-7-165&rssid=18"
Dim reader as XmlTextReader = new XmlTextReader(webClient.OpenRead(ourUrl))
Dim transformer As XslCompiledTransform = New XslCompiledTransform()
transformer.Load("<?xml version=""1.0"" encoding=""utf-8""?><xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""><xsl:output method=""xml"" indent=""yes""/><xsl:strip-space elements=""*""/><xsl:template match=""/""><xsl:copy-of select="".""/></xsl:template></xsl:stylesheet>")
Dim settings As XmlWriterSettings = transformer.OutputSettings
Dim outputStream As MemoryStream = New MemoryStream()
Dim xmlWriter As XmlWriter = xmlWriter.Create(outputStream, settings)
transformer.Transform(reader, Nothing, xmlWriter)
outputStream.Position = 0
Dim streamReader As StreamReader = New StreamReader(outputStream)
Return = streamReader.ReadToEnd()
End Function