2009-12-01 123 views
0

虽然我在寻找解决方案时遇到了一些麻烦,但这可能很简单。在浏览器中显示XML代码

当您在文件夹中查看.xml文件时,您可以双击它,以便您的主浏览器将显示它的代码内容。

我有xml的完整路径,我想在aspx(用c#或vb.net)中创建一个链接,以重定向到浏览器中的XML。

response.redirect("<path>") 

---更新

它重定向到:

http://img37.imageshack.us/img37/7227/89684913.jpg

,当我把我的鼠标 “点击这里” 有到底有/本地主机端口(它看起来在本地主机的路径)

这就是为什么我提出这个问题..它必须是一个不同的方法。

+0

你是什么意思,它不工作? – shahkalpesh

+0

通过直接在浏览器中输入URL可以访问XML文件吗?或者它是一个文件夹(包含xml文件),它受到限制并且不能被最终用户访问? – shahkalpesh

+0

它是可访问的,它可以通过浏览器时,给出正确的路径(与我给的重定向) – Marcelo

回答

1

正如我在质询时说,它会很容易:

Process.Start(<path>) 

它的工作完美,感谢所有你们是谁帮助我!

0

你可以得到从根节点InnerXml&lt;>在你的页面&gt;更换<

要简单入手:

Response.Write(doc.InnerXml.Replace("<", "&lt;").Replace(">", "&gt;")); 
+0

相同在这里..我实际上想要它的ideded,着色和“崩溃”和“扩大”功能..我其实希望浏览器读取它..不只是显示内容(我已经做了其他方式) – Marcelo

0

一旦你读取文件的内容转换成一个字符串,你可以做这样的事情

<pre> 
<%= myXmlString.Replace("<", "&lt;").Replace(">", "&gt;").Replace("\"", "&quot;") %> 
</pre> 

“预”的标签会使浏览器维护文件的布局。是的,你可以用正则表达式做一些更复杂的事情,但是,有时候简单的就是这么做;-)

+0

我实际上希望它的ideped,着色和“崩溃”和“扩大”功能..我实际上希望浏览器读取它不只是显示内容 – Marcelo

0

如果你想维护xml文档的结构和空白,尝试使用LINQ的XDocument 。这个例子说明了如何从文件加载

public string XmlFile 
{ 
    get 
    { 
     return Server.MapPath("output.xml"); 
    } 
} 

然后,在你的XML输出方法:

  string xmlFromFile = string.Empty; 

      XmlTextReader reader = null; 
      XDocument xmlDoc = null; 

      try 
      { 
       reader = new XmlTextReader(XmlFile); 
       xmlDoc = XDocument.Load(reader); 
       reader.Close(); 
      } 
      catch 
      { 
       if(reader != null) 
        reader.Close(); 
      } 

      lblXMLoutput.Text = String.Format("<pre>{0}</pre>", 
       xmlDoc.ToString().Replace("<", "&lt;").Replace(">", "&gt;")); 

      this.xmlOutput.InnerHtml = xmlDoc.ToString(); 

,并在窗体有这样的代码:

<asp:Label ID="lblXMLoutput" runat="server" /> 
<div id="xmlOutput" runat="server" style="display:none;"></div> 

注意,xmlOutput div是没有必要的。它只是在那里,所以你可以检查,以确保所有的XML输出正确。

+0

就你的关于着色和折叠/展开的评论而言,你可以使用manoli的c#formatter(http://www.manoli.net/csharpformat/)他提供代码并支持XML着色。这不应太难实施。崩溃/展开应该很有趣。 –

+0

好吧,非常感谢,但我正在寻找更像FILE.DOUBLECLICK(“XMLFILE.XML”)哈哈,开玩笑的东西..我不想模拟它,我想了解它也为有时我用它与其他东西(如mp3或mp4,filefox和chrome有打开它的方式)或任何其他我可能需要的东西,我真的不需要显示代码(但如果它的工作方式我描述过,它会被添加到发布中的确,因为它会有用),这更多的是关于学习。 – Marcelo

1
Dim xmlDoc As New XmlDocument 
    xmlDoc.Load(Server.MapPath("QuinnDirectRequest.xml")) 
    Response.Clear() 
    Response.AddHeader("Content-Disposition", "inline; filename=file.xml") 

    If Request.QueryString("type") = "s" Then 
     Response.ContentType = "text/xml" 
     Response.Write(xmlDoc.InnerXml) 
    Else 
     Response.ContentType = "application/xml" 
     Response.Write(xmlDoc.InnerXml) 
    End If 

    Response.Flush() 
    Response.End() 
+0

plz检查这个例子 – 2009-12-03 11:58:37

相关问题