我遇到一个问题,我尝试使用XML Web控件提取XML文件的filePath。 XML文件存储在不同的目录中,我使用ashx文件来提供它。 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拉入后面的代码是唯一的方法?
感谢您的帮助!
答案 0 :(得分: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
...然后根据http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.xml.documentsource(v=vs.80).aspx将DocumentSource
设置为从生成的下载数据或字符串或本地文件路径加载的XmlDocument
(如您所见,您无法将DocumentSource
设置为网址 - 而不是您提供有效的网址!)
答案 1 :(得分: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)
再次感谢您的帮助。