2011-03-29 22 views
0

我遇到了一個問題,我嘗試使用XML Web控件拉XML文件的filePath。 XML文件存儲在不同的目錄中,我使用ashx文件來提供它。 ashx文件通過將XML文件名附加到字符串的末尾來工作。使用ashx動態XML文件

Dim oXML As New System.Web.UI.WebControls.Xml 
oXML.DocumentSource = Server.MapPath("xmlHandler.ashx") & "?xml=sampleXMLfile.xml" 
oXML.TransformSource = Server.MapPath("xmlStyles.xslt") 
oXML.DataBind() 

這似乎並沒有爲我工作,我在想,如果拉XML到後面的代碼是唯一的出路?

感謝您的幫助!

+1

如果沒有看到任何代碼,很難說出什麼問題。就個人而言,我可能會*使用一個代碼隱藏,但是你能告訴我們你在嘗試什麼? – 2011-03-29 15:42:50

+0

你去哪兒先生。感謝您的迅速回復。 – goodwince 2011-03-29 15:55:11

+0

您已經顯示試圖使用文件名和URL查詢混合的代碼。我很驚訝地看到這個工作。儘管如此,你仍然沒有向我們展示ashx本身。 – 2011-03-29 16:00:39

回答

1

MapPath一個HTTP路徑/虛擬路徑映射到物理文件夾:http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx

這樣的結果,c:\file\on\disk\etc\xmlHandler.ashx?xml=sampleXMLfile.xml,是沒有意義的:它不是一個本地文件名。

如果你想下載的網址,看看該WebClient類:http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.80).aspx

...然後設置DocumentSource從導致下載的數據加載的XmlDocument,或字符串,或本地文件路徑,根據http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.xml.documentsource(v=vs.80).aspx(正如你所看到的,你不能設置DocumentSource到一個URL - 不是你提供一個有效的URL無論如何!)

0

問題是,我試圖建立用戶觀看方XML,同時開發人員構建了一個文件系統,用於將XML文件從單獨的目錄中推出。他設置了一個ashx文件來預覽XML;然而,這使我的工作變得複雜,並讓我在這裏問我的問題。

爲了解決這個問題,我繞過了ashx文件,並使用它保存的代碼將xml拉到字符串並將其綁定到Xml webcontrol。

Dim fRead = New IO.FileStream(filePath, IO.FileMode.Open) 
Dim sReader = New IO.StreamReader(fRead) 
xmlString = sReader.ReadToEnd() 
fRead.Close() 
sReader.Close() 

Dim oXML As New System.Web.UI.WebControls.Xml 
oXML.DocumentContent = xmlString 
oXML.TransformSource = Server.MapPath("getTSP.xslt") 
oXML.DataBind() 
Panel1.Controls.Add(oXML) 

再次感謝您的幫助。