【发布时间】:2012-02-03 20:02:29
【问题描述】:
我正在尝试使用 c# 编辑所有特殊 html 标记(如 a)的属性。例如我想更改此代码:
<!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>Untitled Page</title>
</head>
<body>
<a href="http://google.com"></a>
<a href="http://gmail.com"></a>
</body>
</html>
到这里:
<!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>Untitled Page</title>
</head>
<body>
<a href="http://go.go/default.aspx?url=http://google.com">
</a><a href="http://go.go/default.aspx?url=http://gmail.com"></a>
</body>
</html>
这意味着我想在<a> 中附加href 的值
我尝试了 LinqToXML,但它不起作用,因为 HTML 不是有效的 XML(因为 DOCTYPE 标签)
这是我的代码:
XDocument xmlFile = XDocument.Load(s);
var query = from c in xmlFile.Elements("html").Elements("body").Elements("a")
select c;
foreach (XElement book in query)
{
string atr = book.Attribute("href").Value;
book.Attribute("href").Value = "http://ahmadalli.somee.com/default.aspx?url=" + atr;
}
xmlFile.Save(s);
s 是我的 html 流。
有谁知道我该怎么做?
我想在 ASP.NET 中有这段代码
【问题讨论】:
-
我知道它不是 C#,但也许 jQuery 会更好地满足您的需求?但是,您似乎需要保存 html 内容。在这种情况下,请按照以下建议使用 HTMLAgility Pack
-
@Bertvan:请参阅我想从我的网站创建所有链接。然后将用户重定向到原始网站。