Отображение кода XML в браузере - PullRequest
0 голосов
/ 01 декабря 2009

Это может быть просто, хотя у меня возникли проблемы с поиском решения.

Когда вы просматриваете XML-файл в своей папке, вы можете дважды щелкнуть по нему, чтобы ваш главный браузер отобразил содержимое кода.

У меня есть полный путь к xml, и я хотел бы создать ссылку в aspx (с помощью c # или vb.net), которая перенаправляет на XML в браузере.

response.redirect("<path>")

--- обновление

он перенаправляет на:

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

когда я наведу курсор мыши на «здесь», в конце появляется порт localhost с / в конце (он ищет путь в localhost)

Вот почему я задал этот вопрос ... это должен быть другой подход.

Ответы [ 5 ]

1 голос
/ 03 декабря 2009
 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()
1 голос
/ 02 декабря 2009

Как я сказал в этом вопросе, было бы легко:

Process.Start(<path>)

Это сработало отлично, спасибо всем вам, ребята, которые помогли мне!

0 голосов
/ 01 декабря 2009

Как только вы прочитаете содержимое файла в строку, вы можете сделать что-то вроде этого

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

Теги "pre" заставят браузер поддерживать макет файла. Да, вы могли бы сделать что-то более изощренное с помощью регулярных выражений, но иногда бывает просто что-то простое;

0 голосов
/ 01 декабря 2009

если вы хотите сохранить структуру и пробелы в документе xml, попробуйте использовать выходные данные из XDocument LINQ. В этом примере показано, как загрузить файл

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

затем в вашем методе вывода xml:

<code>            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}
», 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>

Обратите внимание, что div xmlOutput не требуется. Это просто так, чтобы вы могли проверить, чтобы убедиться, что все ваши xml выводятся правильно.

0 голосов
/ 01 декабря 2009

Вы можете получить InnerXml от корневого узла и заменить < на &lt; и > на &gt; на своей странице.

Что-то простое для начала:

Response.Write(doc.InnerXml.Replace("<", "&lt;").Replace(">", "&gt;"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...