2009-12-01 6 views
0

Cela peut être simple, même si j'ai de la difficulté à trouver une solution. Lorsque vous regardez un fichier .xml dans votre dossier, vous pouvez double-cliquer dessus pour que votre navigateur principal affiche le contenu du code.Affichage d'un code XML dans le navigateur

J'ai le chemin complet du fichier XML, et je voudrais créer un lien dans aspx (avec C# ou vb.net) qui redirige vers le XML dans le navigateur.

response.redirect("<path>") 

--- mettre à jour

redirige vers:

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

quand je mets ma souris sur "ici", il y a le port localhost avec/à la fin (il recherche le chemin dans le localhost)

c'est pourquoi j'ai fait cette question .. il doit y avoir une approche différente.

+0

Que voulez-vous dire par, ça ne marche pas? – shahkalpesh

+0

Le fichier XML est-il accessible en tapant l'URL directement dans le navigateur? OU S'agit-il d'un dossier (contenant le fichier xml) qui est restreint et auquel l'utilisateur final n'a pas accès? – shahkalpesh

+0

il est accessible, il est accessible via le navigateur quand il est donné le bon chemin (même que je donne dans la redirection) – Marcelo

Répondre

1

Comme je l'ai dit dans la question, il serait facile:

Process.Start(<path>) 

Il a parfaitement fonctionné, merci à tous les gars qui me ont aidé!

0

Vous pouvez obtenir le InnerXml à partir du nœud racine et de le remplacer par <&lt; et > avec &gt; dans votre page.

Quelque chose de simple pour commencer:

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

même ici .. je veux en fait identifié, coloré et avec les fonctionnalités "effondrement" et "expand" .. je fait Je veux que le navigateur le lise .. pas seulement afficher le contenu (que je fais déjà d'une autre manière) – Marcelo

0

Une fois que vous avez lu le contenu du fichier dans une chaîne, vous pouvez faire quelque chose comme ça

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

Les balises « pré » feront la le navigateur maintient la disposition du fichier. Ouais, vous pourriez faire quelque chose de plus sophistiqué avec des expressions régulières, mais parfois, quelque chose de simple suffit ;-)

+0

Je le veux en fait identifié, coloré et avec les fonctionnalités "Réduire" et "Développer" .. Je veux vraiment que le navigateur lise il .. pas seulement afficher le contenu – Marcelo

0

Si vous voulez conserver la structure et les espaces du document xml, essayez d'utiliser la sortie de XDocument de LINQ . Cet exemple montre comment charger à partir d'un fichier

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

puis, dans votre méthode de sortie 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(); 

et votre formulaire ont ce code:

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

Notez que le xmlOutput div n'est pas nécessaire. C'est juste là pour que vous puissiez vérifier que tout votre XML est correctement sorti.

+0

autant que vos commentaires sur la coloration et de réduire/développer, vous pouvez utiliser C# formatter manoli (http://www.manoli.net/csharpformat/) Il fournit le code et prend en charge la coloration XML. Cela ne devrait pas être trop difficile à mettre en œuvre. L'effondrement/expansion devrait être intéressant. –

+0

Eh bien, merci beaucoup, mais je cherchais quelque chose de plus comme FILE.DOUBLECLICK ("XMLFILE.XML") hahah, blague .. Je ne veux pas le simuler, et je voudrais l'apprendre aussi pour parfois je l'utilise avec d'autres choses (comme mp3 ou mp4 que le filefox et le chrome ont leurs façons de l'ouvrir) ou toute autre chose dont je pourrais avoir besoin, je n'ai pas vraiment besoin d'afficher le code (mais si ça fonctionne je décris, ça va être ajouté à la sortie, en effet, car ça serait utile) c'est plus sur l'apprentissage. – 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 vérifier cet exemple –

Questions connexes