2013-04-23 37 views
1

XML/ASP.net VB新手在這裏玩得開心在乾草堆找不到針。只需轉儲寫入xml到屏幕

我只想把一些XML轉儲到屏幕上!大量的網站告訴我如何迭代節點,xpath我的方式直接。我只想整個畫面。

Dim doc As New XmlDocument 
doc.Load("remote.xml") 

Dim writer as XmlTextWriter = new XmlTextWriter("debug.xml",nothing) 
writer.Formatting = Formatting.Indented 
doc.Save(writer) 

做一個把它交給一個文件,但我希望它在屏幕上的英鎊工作。 doc.print(作家).....

請幫忙。

+0

可以使用的XDocument加載XML和toString()來獲取字符串表示和轉儲到屏幕。 – 2013-04-23 09:02:42

+0

要澄清:您不問如何讀取或解析XML文件,您正在詢問如何在網頁上顯示大塊任意文本。是對的嗎? – 2013-04-23 09:52:18

+0

是的。我不想解析它。我只是想看到它。 – bendecko 2013-04-23 11:01:15

回答

2

用你的文檔的innerXml嘗試一下。確保HtmlEncode它顯示。堅持你的ASPX一個literalcontrol使用id = 'ltXml',然後是這樣的:

Dim doc As New XmlDocument() 
doc.Load(Server.MapPath("~/remote.xml")) 

ltXml.Text = Server.HtmlEncode(doc.InnerXml) 

由OP根據註釋編輯。

讓你的類中的函數返回Xml字符串。

Private Class [MyClass] 
     Public Shared Function getXml() As String 
     Dim doc As New XmlDocument() 
     doc.Load("somefile.xml") 

     Return HttpContext.Current.Server.HtmlEncode(doc.InnerXml) 
    End Function 
End Class 

然後在你的網頁背後的ASPX代碼調用類的函數:

ltXml.Text = [MyClass].getXml() 
+0

這看起來不錯。但是我的代碼在一個類中,我得到範圍錯誤。名稱'ltXml'未被聲明。如何讓班級看到網頁? – bendecko 2013-04-23 11:02:01

0

我建議使用現代XDocument class而不是舊的,過時XmlDocument

XDocument.ToString已經返回XML的格式良好的版本,因此,所有你需要做的是:

Dim doc As XDocument = XDocument.Load("remote.xml") 
Dim formatted As String = doc.ToString() 
+0

看起來很有趣。我需要什麼樣的IMPORT聲明? '<%@ Page Language =「VB」Debug =「true」%>' '<%@ Import Namespace =「System.Data」%>' '<%@ Import Namespace =「System.Xml.Linq 「%>' '<%@ Import Namespace =」System.Xml.XLinq「%>' 我得到Type'XDocument'未定義。 – bendecko 2013-04-23 11:03:28

+0

@bendecko:'System.Xml.Linq'很好,一定要將對System.Xml.Linq.dll的引用添加到你的項目中! – Heinzi 2013-04-23 13:18:43

+0

@bendecko:作爲一般建議:這些信息可以在[該類的MSDN頁面]上找到(http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx) :行**命名空間:**定義了導入聲明,行**彙編:**告訴你你需要哪個引用。 – Heinzi 2013-04-23 13:20:20