1
votes

Comment lire un modèle HTML, remplacer du texte et reconvertir en HTML

Je charge actuellement un fichier html à partir d'un chemin de fichier et je le lis sous forme de texte. Je remplace ensuite certains caractères dans le fichier lui-même et je souhaite le reconvertir en html.

Voici comment je le fais actuellement:

var result = new HtmlString(content);

Lorsque je débogue et vérifie ce que contient eContent, je peux voir des caractères de nouvelle ligne comme "\ r \ n". Si je copie et colle le texte dans un fichier .html, seul le texte apparaît, pas une page HTML appropriée.

J'utilise déjà Html AgilityPack et je ne suis pas sûr de ce que je dois faire d'autre.

EDIT:

J'ai aussi essayé

HtmlDocument document = new HtmlDocument();
document.Load(@message.Location);
content = document.DocumentNode.OuterHtml;

//Code to replace text

var eContent = HttpUtility.HtmlEncode(content);


0 commentaires

3 Réponses :


1
votes

HtmlAgilityPack est idéal pour lire et modifier les fichiers Html que vous ne pouvez pas créer de sortie lisible.

Essayez ceci


0 commentaires

0
votes

J'ai fait cela avant d'utiliser ...

 string savePath = "path to save html file, ie C://myfile.html";

 string textRead = File.ReadAllText(@"Path of original html file");
  //replace or manipulate as needed... ie textRead = textRead.Replace("", "");
 File.WriteAllText(savePath, textRead);


2 commentaires

Ouais mais je ne veux pas l'écrire dans un fichier. J'ai besoin de la chaîne pour envoyer via une autre fonction.


puis supprimez le File.WriteAllText et passez la chaîne textRead où vous le souhaitez, il conservera toutes ses balises et son format HTML.



0
votes

Essayez d'utiliser ContentResult , qui hérite de ActionResult . N'oubliez pas de définir ContentType sur text/html.

[HttpGet]
public IActionResult FileToTextToHtml()
    {
        string fileContents = System.IO.File.ReadAllText("D:\\HtmlTest.html");

        var result= new ContentResult()
        {
            Content = fileContents,
            ContentType = "text/html",
        };
        return result;
    }


0 commentaires