Hej.
Jeg fik det lavet. Dog i en ASP.net udgave.. :-) Ved dog ikke helt hvor godt den virker.. Men her kan du/i se koden.. :-)
HTMLPage.htm[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="
http://www.w3.org/1999/xhtml"><head>
<title></title>
<script type="text/javascript">
function loadXMLDoc(url) {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
return xmlhttp.responseText;
}
function PageLoad(url) {
document.getElementById('txtTitle').value = loadXMLDoc("Default2.aspx?Load=Title&URL=" + url);
document.getElementById('txtDescription').value = loadXMLDoc("Default2.aspx?Load=Description&URL=" + url);
}
</script>
</head>
<body onload="PageLoad('
http://youtube.com')">
<input type="text" id="txtTitle"><br />
<input type="text" id="txtDescription"><br />
</body>
</html>
[/code]
Default2.aspx.cs[code]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string url = Request.QueryString["URL"];
if (Request.QueryString["Load"] == "Title")
Response.Write(FetchTitleFromHTML(readurl(url).ToString()));
else if (Request.QueryString["Load"] == "Description")
Response.Write(FetchDescriptionFromHtml(readurl(url).ToString()));
}
public string FetchTitleFromHTML(string sHtml)
{
string regex = @"(?<=<title.*>)([\s\S]*)(?=</title>)";
Regex ex = new Regex(regex, RegexOptions.IgnoreCase);
return ex.Match(sHtml).Value.Trim();
}
public string FetchDescriptionFromHtml(string sHtml)
{
string regex = @"(?<=<META\s+name=""description""\s+content="").*?(?=""\s*?>)|(?<=<META\s+name=""description""\s+content="").*?(?=""\s*?/>)|(?<=content="").*?(?=name=""Description""/>)|(?<=content="").*?(?=name=""Description"">)";
Regex ex = new Regex(regex, RegexOptions.IgnoreCase);
return ex.Match(sHtml).Value.Trim();
}
public object readurl(string url)
{
WebResponse objResponse = default(WebResponse);
WebRequest objRequest = default(WebRequest);
string result = null;
try
{
objRequest = System.Net.HttpWebRequest.Create(url);
objResponse = objRequest.GetResponse();
StreamReader sr = new StreamReader(objResponse.GetResponseStream());
result = sr.ReadToEnd();
//clean up StreamReader
sr.Close();
}
catch (Exception ex)
{
string s = ex.ToString();
//this must be modified
result = s;
}
if (result.Length == 0)
{
result = "no result";
}
return result;
}
}
[/code]