读取HTML并取其中一部分内容如何实现

<p />
<table border="0" width="600" class="tdiff" id="This table displays database instance information">
<tr><th class="awrbg" scope="col">DB Name</th><th class="awrbg" scope="col">DB Id</th><th class="awrbg" scope="col">Instance</th><th class="awrbg" scope="col">Inst num</th><th class="awrbg" scope="col">Startup Time</th><th class="awrbg" scope="col">Release</th><th class="awrbg" scope="col">RAC</th></tr>
<tr><td scope="row" class='awrnc'>EASY1263</td><td align="right" class='awrnc'>3560300017</td><td class='awrnc'>EASY1263</td><td align="right" class='awrnc'>1</td><td class='awrnc'>24-Jun-15 12:06</td><td class='awrnc'>12.1.0.2.0</td><td class='awrnc'>NO</td></tr>
</table>
<p />
<p />
<table border="0" width="600" class="tdiff" id="This table displays host information">
<tr><th class="awrbg" scope="col">Host Name</th><th class="awrbg" scope="col">Platform</th><th class="awrbg" scope="col">CPUs</th><th class="awrbg" scope="col">Cores</th><th class="awrbg" scope="col">Sockets</th><th class="awrbg" scope="col">Memory (GB)</th></tr>
<tr><td scope="row" class='awrnc'>rosheritac13</td><td class='awrnc'>Linux x86 64-bit</td><td align="right" class='awrnc'> 12</td><td align="right" class='awrnc'> 6</td><td align="right" class='awrnc'> 1</td><td align="right" class='awrnc'> 23.43</td></tr>
</table>
<p />
<table border="0" width="600" class="tdiff" id="This table displays snapshot information">
<tr><th class="awrnobg" scope="col"></th><th class="awrbg" scope="col">Snap Id</th><th class="awrbg" scope="col">Snap Time</th><th class="awrbg" scope="col">Sessions</th><th class="awrbg" scope="col">Cursors/Session</th></tr>
<tr><td scope="row" class='awrnc'>Begin Snap:</td><td align="right" class='awrnc'>50223</td><td align="center" class='awrnc'>11-Aug-15 15:00:38</td><td align="right" class='awrnc'>170</td><td align="right" class='awrnc'> 3.3</td></tr>
<tr><td scope="row" class='awrc'>End Snap:</td><td align="right" class='awrc'>50225</td><td align="center" class='awrc'>11-Aug-15 16:00:47</td><td align="right" class='awrc'>175</td><td align="right" class='awrc'> 3.3</td></tr>
<tr><td scope="row" class='awrnc'>Elapsed:</td><td class='awrnc'> </td><td align="center" class='awrnc'> 60.16 (mins)</td><td class='awrnc'> </td><td class='awrnc'> </td></tr>
<tr><td scope="row" class='awrc'>DB Time:</td><td class='awrc'> </td><td align="center" class='awrc'> 470.40 (mins)</td><td class='awrc'> </td><td class='awrc'> </td></tr>
</table>
<p />

比如我只想要输出第一个table的内容,用javascript该怎么写?
要是能够把截取的内容输出到新的html就更好了
我用var tb = document.getElementById('This table displays database instance information'); 可以拿到这个内容,但是接下来不知道怎么处理了,或者有更好的方法?

将文章的html代码存入到数据库中,读取时不能简单地截取一定字符,必须根据html的结构适当截取内容,否则将显示错误,下面是使用System.Windows.Forms中的WebBrowser进行Html解析的代码


public string GetAbstract(string content, int maxLength)
{
  string text = "";
  System.Windows.Forms.HtmlDocument html;
  if (content.Length < maxLength)
  {
   text = content;
  }
  else
  {
   System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();
   browser.Navigate("about:blank");

   html = browser.Document.OpenNew(true);
   browser.Dispose();
   html.Write(content);

   foreach (System.Windows.Forms.HtmlElement ele in html.Body.Children)
   {
    if (text.Length + ele.OuterHtml.Length < maxLength)
    { text += ele.OuterHtml; }
    else { break; }
   }
  }
  return text;
}

}

追问

谢谢解答,以上脚本是javascript?针对我的页面该改写哪些部分? 我已经尝试在javascript中使用innerHTML,但是结果不尽如人意

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
第一步获取元素
var tb = document.getElementById('This table displays database instance information');//建议id名简短点

第二步找个存放节点
如放到body中可以这样
var body = document.getElementsByTagName('body')[0];
body.innerHTML = tb.innerHTML;追问

谢谢你的解答,按照你的方法如下结果输出:


实际效果应该是:

也就是说格式没了,这不是我要的结果,能够拿到元素并且保留原有的格式么?

追答

当然可以,第二步更改下
1、直接输出结果 alert(tb.innerHTML);

2、可以在html加个元素


添加代码
var box = document.getElementById('box');
box.innerHTML = tb.innerHTML;

追问

结果还是没有格式,alert输出之后发现代码被更改了,有的前面加了大写T,应该是输出了不规范的html格式,有办法避免么

原有的代码:<table border="0" width="600" class="tdiff" id="table1"> 被删掉了,导致没有表格输出


谢谢解答,可能是缓存的原因,今天来的时候突然可以了

本回答被提问者采纳
第2个回答  2015-09-07
你能说清楚你要问的问题吗?一般可以用value和innerHTML。就看你读取那个标签里面的内容
第3个回答  2015-09-07
tb.innerHTML就可以了
相似回答