在浏览器中显示XML代码

时间:2009-12-01 18:18:03

标签: asp.net xml file browser

这可能很简单,虽然我在寻找解决方案时遇到了一些麻烦。

当你在文件夹中查看.xml文件时,你可以双击它,这样主浏览器就会显示它的代码内容。

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

response.redirect("<path>")

---更新

重定向到:

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

当我把鼠标放在“here”上时,最后是/的localhost端口(它在localhost中查找路径)

这就是我提出这个问题的原因..它必须采用不同的方法。

5 个答案:

答案 0 :(得分:1)

正如我在问题中所说,这很容易:

Process.Start(<path>)

它完美无缺,感谢所有帮助过我的人!

答案 1 :(得分: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()

答案 2 :(得分:0)

您可以从根节点获取InnerXml,并将<替换为&lt;,将>替换为您网页中的&gt;

开始时很简单:

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

答案 3 :(得分:0)

一旦你将文件的内容读成字符串,你就可以做这样的事情

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

“pre”标签将使浏览器维护文件的布局。是的,你可以用正则表达式做一些更复杂的事情,但是,有时它只需要一些简单的东西; - )

答案 4 :(得分: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都正确输出。