Hola buenas a todos, estoy empezando en esto de la programación y quería saber si hay alguna manera de borrar el codigo HTML de una pagina desde una string?
Por ejemplo:
La web tiene un title llamado Hola
string title = "Hola"
Como podría hacer para borrar ese código?
Gracias a todos!
Te refieres un html guardado en tu pc?
hola
puedes acceder a tu hosting usando la clase WebRequestMethods:
Clase WebRequestMethods.Ftp (http://"https://msdn.microsoft.com/es-es/library/system.net.webrequestmethods.ftp(v=vs.110).aspx")
WebRequestMethods.Ftp.MakeDirectory (para crear directorios)
WebRequestMethods.Ftp.DownloadFile (para descargar)
Cómo: descargar archivos mediante FTP (http://"https://msdn.microsoft.com/es-es/library/ms229711(v=vs.110).aspx")
WebRequestMethods.Ftp.UploadFile (para subir archivos)
Cómo: cargar archivos con FTP (http://"https://msdn.microsoft.com/es-es/library/ms229715(v=vs.110).aspx")
WebRequestMethods.Ftp.DeleteFile (para eliminar archivos)
Simplemente descarga el contenido del archivo del hosting, lo modificas en una caja de texto y luego lo vuelves a subir.
En este ejemplo al pulsar Button1 descarga el archivo y lo muestra en un textBox. Al pulsar el Button2 sube el archivo y sobrescribe el original por el contenido del TextBox (si no existe lo crea)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
request.Method = WebRequestMethods.Ftp.DownloadFile;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential("anonymous","janeDoe@contoso.com");
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
textBox1.Text= (reader.ReadToEnd());
reader.Close();
response.Close();
}
private void button2_Click(object sender, EventArgs e)
{
byte[] Data = System.Text.Encoding.Unicode.GetBytes(textBox1.Text);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.ContentLength = Data.Length;
request.Credentials = new NetworkCredential("anonymous","janeDoe@contoso.com");
Stream requestStream = request.GetRequestStream();
requestStream.Write(Data, 0, Data.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
}
}
Si te refieres a eliminar el código interno, el Html, para dejar solamente el texto asignado en los atributos, campos o tags, tan solo tienes que utilizar la propiedad
InnerText del tipo
HtmlElement.
Tomando este documento html de ejemplo:
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE>My Title</TITLE>
</HEAD>
<BODY>
<h1>My Heading</h1>
<p>My Paragraph</p>
</BODY>
</HTML>
Lo cargamos en una nueva instancia del tipo
WebBrowser y...
string html = File.ReadAllText("C:\\Document.htm");
using (WebBrowser wb = new WebBrowser()) {
wb.ScriptErrorsSuppressed = true;
wb.DocumentText = html;
wb.Document.OpenNew(replaceInHistory: true);
wb.Document.Write(html);
wb.Refresh();
Console.Write(wb.Document.GetElementsByTagName("HTML")[0].InnerText);
}
Resultado de ejecución:
Cita de: Visual Studio's Debug ConsoleMy Title
My Heading
My paragraph
PD: Este ejemplo es con un archivo local, pero puedes hacer lo mismo descargando una página online, por supuesto.
¡Saludos!