asp.net 如何查找html某一标记里面的内容呢?

q704174307 2008-11-29 10:35:04
如题,我在CS文件里面,用string str取出了某张html文件的源代码
那么我想利用js的getElementsByTagName原理,才取出str的某些节点内容
可以怎么实现呢
用CS或者JS写都行
...全文
194 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
q704174307 2008-11-29
  • 打赏
  • 举报
回复
顶上去
q704174307 2008-11-29
  • 打赏
  • 举报
回复
我有一个想法,就是能不能把html换成xml,这样会不会容易一点
q704174307 2008-11-29
  • 打赏
  • 举报
回复
楼上的。你要想到一件事
就是说
div里面可以嵌套div
比如
<div id=1>
<div></div>
</div>
mengxj85 2008-11-29
  • 打赏
  • 举报
回复
前几天收藏的几种方法
------------
C# code
public class Reg
{
#region/// 过滤html,js,css代码
/// <summary>
/// 过滤html,js,css代码
/// </summary>
/// <param name="html">参数传入</param>
/// <returns></returns>
public static string CheckStr(string html)
{
System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex3 = new System.Text.RegularExpressions.Regex(@" no[\s\S]*=", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex4 = new System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex5 = new System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex6 = new System.Text.RegularExpressions.Regex(@"\<img[^\>]+\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex7 = new System.Text.RegularExpressions.Regex(@"</p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex8 = new System.Text.RegularExpressions.Regex(@"<p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regex regex9 = new System.Text.RegularExpressions.Regex(@"<[^>]*>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
html = regex1.Replace(html, ""); //过滤<script></script>标记
html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件
html = regex4.Replace(html, ""); //过滤iframe
html = regex5.Replace(html, ""); //过滤frameset
html = regex6.Replace(html, ""); //过滤frameset
html = regex7.Replace(html, ""); //过滤frameset
html = regex8.Replace(html, ""); //过滤frameset
html = regex9.Replace(html, "");
html = html.Replace(" ", "");
html = html.Replace("</strong>", "");
html = html.Replace("<strong>", "");
return html;
}
#endregion
#region /// 过滤p /p代码
/// <summary>
/// 过滤p /p代码
/// </summary>
/// <param name="html">参数传入</param>
/// <returns></returns>
public static string InputStr(string html)
{
html = html.Replace(@"\<img[^\>]+\>", "");
html = html.Replace(@"<p>", "");
html = html.Replace(@"</p>", "");
return html;
}
#endregion


/// <summary>
/// 截取字符串
/// </summary>
/// <param name="str"></param>
/// <param name="length"></param>
/// <returns></returns>
protected string GetLength(string str, int length)
{
string strR = str;
if (str.Length > length)
{
strR = str.Substring(0, length) + "...";
}
return strR;
}

}


-----------------------------
直接replace也行

using System.Text.RegularExpressions;

string html = "test start <iframe src=''> </iframe> end";
html = Regex.Replace(html, @" <iframe.+? </iframe>", "", RegexOptions.IgnoreCase);//IgnoreCase即不限制大小写
--------------------
C# code

///<summary>
///替换html中的特殊字符
///</summary>
///<param name="theString">需要进行替换的文本。</param>
///<returns>替换完的文本。</returns>
public string HtmlEncode(string theString)
{
theString = theString.Replace(">", ">");
theString = theString.Replace("<", "<");
theString = theString.Replace(" ", "  ");
theString = theString.Replace(" ", "  ");
theString = theString.Replace("\"", """);
theString = theString.Replace("\'", "'");
theString = theString.Replace("\n", "<br/> ");
return theString;
}

------------------
q704174307 2008-11-29
  • 打赏
  • 举报
回复
啊,大家帮帮我啊,着急用啊
我在这个节骨眼上总转不过
lxl_sprots 2008-11-29
  • 打赏
  • 举报
回复
帮你顶一下。。。
q704174307 2008-11-29
  • 打赏
  • 举报
回复

<body>
<div>
<div class="left">
<div class="spic"><img src="images/1_01.gif" /></div>
<div>
<ul>
<li><strong>主  办:</strong><em>中国元素网</em></li>
<li><strong>主  编:</strong><em>中国元素网</em></li>
<li><strong>编  辑:</strong><em>中国元素网</em></li>
<li><strong>设计总监:</strong><em>中国元素网</em></li>
<li><strong>设  计:</strong><em>中国元素网<br />中国元素网</em></li>
<li><strong>技术支持:</strong><em>中国元素网</em></li>
</ul>
<dl>
<dt>联系方式:</dt>
<dd>[内容合作] 0754-00000000</dd>
<dd>[广告投放] 0754-00000000</dd>
</dl>
</div>
</div>
<div class="center"></div>
<div class="right">
<div class="directory">
<h1>目录</h1>
<label>Directory</label>
<em>Vol/01</em>
</div>
<div class="dc">
<dl>
<dd class="pic"><a href="#"><img src="images/1_02.gif" /></a></dd>
<dd class="title"><a href="#">饮食新闻</a></dd>
<dd class="des">介绍饮料界新闻 信息</dd>
</dl>
</div>
<div class="dc">
<dl>
<dd class="pic"><a href="#"><img src="images/1_02.gif" /></a></dd>
<dd class="title"><a href="#">饮食新闻</a></dd>
<dd class="des">介绍饮料界新闻 信息</dd>
</dl>
</div>
<div class="dc">
<dl>
<dd class="pic"><a href="#"><img src="images/1_02.gif" /></a></dd>
<dd class="title"><a href="#">饮食新闻</a></dd>
<dd class="des">介绍饮料界新闻 信息</dd>
</dl>
</div>
<div class="dc" id="2">
<dl>
<dd class="pic"><a href="#"><img src="images/1_02.gif" /></a></dd>
<dd class="title"><a href="#">饮食新闻</a></dd>
<dd class="des">介绍饮料界新闻 信息</dd>
</dl>
</div>
<div class="dc" id="1">
<dl>
<dd class="pic"><a href="#"><img src="images/1_02.gif" /></a></dd>
<dd class="title"><a href="#">饮食新闻</a></dd>
<dd class="des">介绍饮料界新闻 信息</dd>
</dl>
</div>
</div>
</div>
</body>
</html>

这就是代码,我想找那2个有id的内容
CODE163 2008-11-29
  • 打赏
  • 举报
回复
lz你的字符串我们都不知道长什么样 也不知道你要取出什么东东 ··怎么写 你贴出来从哪个字符串里面提取哪个字符串
q704174307 2008-11-29
  • 打赏
  • 举报
回复
我大概也能想到用正则,就是想问问有谁有通用的正则表达式什么的,或者例子,给我一个
最好是写好的方法,我只要调用这个方法,输入str和想找的标记就好
我大概说下吧,我想找那些页面有id属性的所有标记下的东西
没有id的那些不管
amanizty 2008-11-29
  • 打赏
  • 举报
回复
帮顶~
q704174307 2008-11-29
  • 打赏
  • 举报
回复
我大概也能想到用正则,就是想问问有谁有通用的正则表达式什么的,或者例子,给我一个
最好是写好的方法,我只要调用这个方法,输入str和想找的标记就好
我大概说下吧,我想找那些页面有id属性的所有标记下的东西
没有id的那些不管
CODE163 2008-11-29
  • 打赏
  • 举报
回复
我晕 怎么这么快我的沙发就没了!!诸位神速····
CODE163 2008-11-29
  • 打赏
  • 举报
回复
为什么不用正则表达式处理字符串得出HTML中的内容,如果用JS岂不是必须先输出到客户端才能得到值!你说的不具体 没法写!
Fibona 2008-11-29
  • 打赏
  • 举报
回复
即然是在string里面,可以用string的indexoOf("<TagName进行查找,然后找到"/>";循环取出一段段的string来不就OK了

孤独侠客123 2008-11-29
  • 打赏
  • 举报
回复
用正则不错
孤独侠客123 2008-11-29
  • 打赏
  • 举报
回复
用正则不错
whoami333 2008-11-29
  • 打赏
  • 举报
回复
可能需要用正则表达式。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧