我尝试以下列方式获取HTML Source:
webBrowser1.Document.Body.OuterHtml;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.例如,如果原始HTML源是:
<html>
<body>
<div>
<ul>
<li>
<h3>
Manufacturer</h3>
</li>
<li><a href="/4566-6501_7-0.html?
filter=1000036_3808675_100021_10194772_">Sony </a>(44)</li>
<li><a href="/4566-6501_7-0.html?
filter=1000036_108496_100021_10194772_">Nikon </a>(19)</li>
<li><a href="/4566-6501_7-0.html?
filter=1000036_3808726_100021_10194772_">Panasonic </a>(37)</li>
<li><a href="/4566-6501_7-0.html?
filter=1000036_3808769_100021_10194772_">Canon </a>(29)</li>
<li><a href="/4566-6501_7-0.html?
filter=1000036_2913388_100021_10194772_">Olympus </a>(21)</li>
<li class="seeAll"><a href="/4566-6501_7-0.html?
sa=1000036&filter=100021_10194772_" class="readMore">See all manufacturers </a></li>
</ul>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但输出webBrowser1.Document.Body.OuterHtml是:
<body>
<div>
<ul>
<li>
<h3>
Manufacturer</h3>
<li><a href="/4566-6501_7-0.html?filter=1000036_3808675_100021_10194772_">Sony </a>(44)
<li><a href="/4566-6501_7-0.html?filter=1000036_108496_100021_10194772_">Nikon </a>(19)
<li><a href="/4566-6501_7-0.html?filter=1000036_3808726_100021_10194772_">Panasonic
</a>(37)
<li><a href="/4566-6501_7-0.html?filter=1000036_3808769_100021_10194772_">Canon </a>
(29)
<li><a href="/4566-6501_7-0.html?filter=1000036_2913388_100021_10194772_">Olympus </a>
(21)
<li class="seeAll"><a class="readMore" href="/4566-6501_7-0.html?sa=1000036&filter=100021_10194772_">
See all manufacturers </a></li>
</ul>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
你可以看到,许多人</li>都迷失了.
有没有办法WebBrower正确控制HTML源代码?请注意,在我的应用程序中,我尝试使用WebBrowser向每个节点添加坐标信息,并使用坐标信息输出其HTML源,该坐标信息作为节点的属性添加.
任何人都可以帮我一个忙吗?
谢谢你们。我最终的解决方案是:首先,使用body.outlineHtml获取html源。<li>因为 body.outlineHtml 可能会丢失和 的结束标记<td>,所以第二步是使用 tidy 修复 HTML 源。完成这些之后,我们就可以得到没有错误的 HTML 源代码