2009-12-01 120 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

相關問題