标签: htmltidy

在N个部分中拆分html字符串

有没有人有一个分裂html字符串(来自一个小的mce编辑器)并使用C#将它分成N个部分的例子?

我需要均匀地分割字符串而不分割单词.

我想只是拆分html并使用HtmlAgilityPack尝试修复损坏的标签.虽然我不确定如何找到分裂点,但理想情况下它应该基于文本而不是html.

谁有任何想法如何去做?

UPDATE

根据要求,这是输入和所需输出的示例.

INPUT:

<p><strong>Lorem ipsum dolor sit amet, <em>consectetur adipiscing</em></strong> elit.</p>
Run Code Online (Sandbox Code Playgroud)

输出(当分成3个小组时):

Part1: <p><strong>Lorem ipsum dolor</strong></p>
Part2: <p><strong>sit amet, <em>consectetur</em></strong></p>
Part3: <p><strong><em>adipiscing</em></strong> elit.</p>
Run Code Online (Sandbox Code Playgroud)

更新2:

我刚刚玩过Tidy HTML,这似乎很适合修复损坏的标签,所以如果我能找到一种方法来找到拆分品牌,这可能是个不错的选择?

更新3

在.NET C#中对整个单词使用类似于此Truncate字符串的方法,我现在设法获得将构成每个部分的纯文本单词列表.所以,比如说使用Tidy HTML我有一个有效的HTML结构用于html,并且给出了这个单词列表,任何人都知道现在最好的分割方法是什么?

更新4

任何人都可以看到使用正则表达式以下列方式使用HTML查找索引的问题:

给定纯文本字符串"sit amet,consectetur",用正则表达式替换所有空格"(\ s | <(.| \n)+?>)*",理论上找到具有空格和/或任意组合的字符串标签

那么我可以使用Tidy HTML来修复损坏的html标签吗?

非常感谢

马特

c# regex htmltidy html-agility-pack

6
推荐指数
1
解决办法
4712
查看次数

屏幕分析您在生活中见过的最丑陋的HTML

我正在使用PHP和libtidy来尝试筛选可能是历史上最糟糕和最不正确的HTML表格使用情况.该站点关闭了几个table,tr,td,font或bold标签,并且一致地嵌套了表中的许多不同的表层.

示例代码段:

<center>
<table border="1" bordercolor="#000000" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">
<center>
Home Team - <b>Wildcats<td>
<center>
Away Team - <b>Polar Bears<tr>
<td colspan="2">
<center>
<b><font size="+1">Rosters<tr>
<td valign="top">
<center>
<table border="0" cellspacing="0">
<tr>
<td>
<font size="2">1&nbsp;<td>
<font size="2">Baird, T<tr>
<td>
<font size="2">2&nbsp;<td>
<font size="2">Knight, P<tr>
<td>
<font size="2">8&nbsp;<td>
<font size="2">Miller, B<tr>
<td>
<font size="2">9&nbsp;<td>
<font size="2">Huebsch, B<tr>
<td>
<font size="2">11&nbsp;<td>
<font size="2">Buschmann, C<tr>
<td>
<font size="2">12&nbsp;<td>
<font size="2">Reding, J<tr>
<td>
<font size="2">14&nbsp;<td>
<font size="2">Simpson, S<tr>
<td>
<font size="2">27&nbsp;<td>
<font …
Run Code Online (Sandbox Code Playgroud)

php screen-scraping tidy htmltidy

5
推荐指数
1
解决办法
1094
查看次数

正确使用JTidy来净化HTML

我正在尝试使用JTidy(jtidy-r938.jar)来清理输入HTML字符串,但我似乎无法正确获取默认设置.通常,诸如"你好世界"之类的字符串在整理后最终成为"helloworld".我想展示我在这里做的事情,任何指针都会非常感激:

假设这rawHtml是包含输入(真实世界)HTML的String.这就是我正在做的事情:

        Tidy tidy = new Tidy();
        tidy.setPrintBodyOnly(true);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PrintStream ps = new PrintStream(baos);

        tidy.parse(new StringReader(rawHtml), ps);
        return baos.toString("UTF8");   
Run Code Online (Sandbox Code Playgroud)

首先,上述代码看起来有什么根本错误吗?我似乎得到了奇怪的结果.

例如,请考虑以下输入:

<p class="MsoNormal" style="text-autospace:none;"><font color="black"><span style="color:black;">???</span></font><b><font color="#7f0055"><span style="color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;"> String parseDescription</span></font><font>

输出是:

<p class="MsoNormal" style="text-autospace:none;"><font color= "black"><span style="color:black;">&nbsp;&nbsp;&nbsp;</span></font> <b><font color="#7F0055"><span style= "color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;">String parseDescription</span></font></p>

所以,

"public String parseDescription"变为"publicString parseDescription"

提前致谢!

java tidy jtidy htmltidy

5
推荐指数
1
解决办法
1万
查看次数

HTML Tidy 处理后的希伯来字符变成了乱码

我正在使用 HTML Tidy Online ( http://infohound.net/tidy/ ) 来整理一些非常旧且混乱的 HTML 文件,其中包含一些希伯来字符。每当 Tidy 处理页面时,即使在更改设置中的编码方法之后,输出也会将希伯来字符变成乱码。使用不同的设置,我确实设法获得与 Unicode 实体相同的希伯来字符输出。我用谷歌搜索了可能的解决方案,但没有找到。我心里有几个想法,但我不确定如何实现它们(如果有的话)(也许有人有更好的解决方案)。

  1. 我想也许我可以(在处理页面之后)扫描页面中的 unicode 实体,并将它们替换为相应的希伯来字符(当然,以系统的方式)。
  2. 也许我可以获取 HTML Tidy 源代码并修改它以适当地输出希伯来语字符。问题是我怀疑我是否有足够的知识来开始做这样的事情。

unicode tidy hebrew htmltidy

5
推荐指数
1
解决办法
1416
查看次数

HTML关闭标签后整理新的空行

当我在Coda中使用Tidy HTML时它很干净,但我不喜欢空行

<ul>
    <li>…</li>
<!-- here -->
    <li>…</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我尝试编辑配置但没有成功

// config file for Coda PHP Toolkit Tidy FORMAT script
// http://www.chipwreck.de/blog/software/coda-php
//
// documentation is here: http://tidy.sourceforge.net/#docs
// rev 5

anchor-as-name: no
doctype: auto
drop-empty-paras: no
fix-uri: no
literal-attributes: yes
merge-divs: no
merge-spans: no
numeric-entities: no
preserve-entities: yes
quote-ampersand: no
quote-marks: no
show-body-only: no
indent: auto
indent-spaces: 4
tab-size: 4
wrap: 0
wrap-asp: no
wrap-jste: no
wrap-php: no
wrap-sections: no
tidy-mark: no
new-blocklevel-tags: article,aside,command,canvas,dialog,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,meter 
new-inline-tags: …
Run Code Online (Sandbox Code Playgroud)

htmltidy coda

5
推荐指数
2
解决办法
2595
查看次数

HTML Tidy在开始时剥离空间

File.html

word<i><span> <span>ratti</span></span></i>
Run Code Online (Sandbox Code Playgroud)

命令

$ tidy File.html
Run Code Online (Sandbox Code Playgroud)

产量

word<i>ratti</i>
Run Code Online (Sandbox Code Playgroud)

期望的输出

word<i> ratti</i>
Run Code Online (Sandbox Code Playgroud)

空间在哪里?

日志

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: plain text isn't allowed in <head> elements
line 1 column 8 - Warning: <span> is probably intended as </span>
line 1 column 5 - Warning: replacing unexpected span by </span>
line 1 column 33 - Warning: discarding unexpected </span>
line 1 column 40 - Warning: discarding unexpected </i>
line 1 column …
Run Code Online (Sandbox Code Playgroud)

html tidy htmltidy

5
推荐指数
1
解决办法
1094
查看次数

如何通过 TextMate 或命令行在 Mac OS 上使用 W3C tidy-html5 包?

我在这里安装了 W3C tidy-html5 包:~/Library/Application Support/Avian/Pristine Copy/Bundles/tidy-html5

但是,当我在终端中运行该命令时,它似乎无法识别 HTML5 标签。看起来它可能正在运行旧的 HTML Tidy 方法,它只能理解 XHTML/HTML4。

例如,如果我运行:

tidy ~/Desktop/tidy-test.html
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

line 1 column 180 - Error: <aside> is not recognized!
line 1 column 180 - Warning: discarding unexpected <aside>
line 1 column 353 - Error: <section> is not recognized!
line 1 column 353 - Warning: discarding unexpected <section>
line 1 column 418 - Warning: replacing invalid character code 139
line 1 column 419 - Warning: replacing invalid character code 134
line 1 column …
Run Code Online (Sandbox Code Playgroud)

html validation textmate htmltidy textmatebundles

5
推荐指数
1
解决办法
962
查看次数

适用于Google Web Toolkit(GWT)的漂亮打印/ HTML整洁?

是否有GWT(Google Web Toolkit)的功能可以打印小部件的html输出?(如果问题严重错误,我道歉 - 我不是GWT开发者,但我们的开发人员声称没有办法做到这一点)

目前所有输出都是一个巨大的单行块,因此调试CSS问题等是一项相当大的任务.

HTML Tidy/Pretty Print,至少在测试期间,将是一个很好的帮助.

gwt pretty-print htmltidy

4
推荐指数
1
解决办法
1426
查看次数

哪个是最好的HTML整洁包?HTML agility pack中是否有任何选项可以使HTML网页整洁?

我正在使用html agility pack来解析html 表格信息.现在有一些html内容缺少结束标记,并且由于缺少结束标记而来自此页面html agility pack不能正确解析信息.所以我想在缺少结束标记的地方插入结束标记,以便html敏捷包正确解析信息.所以要插入缺少的结束标记我该怎么办?我应该为此编写自己的代码还是使用html tidy pack来做到这一点?

如果html整洁包然后哪个是最好的html整洁包,如果可能的话如何使用它的任何示例?如果我自己的代码比它可能是什么样的?

在html agility pack中是否有任何选项可以让我们首先使html页面整洁,然后解析网页.

c# html-parsing htmltidy winforms html-agility-pack

4
推荐指数
1
解决办法
5736
查看次数

php整洁奇怪的行为

我正在使用php的整洁库来"清理和修复"来自用户输入的一些html.

一切正常,但我遇到了一个问题,我无法弄清楚它的原因是什么.我的代码是这样的:

$tidy = new tidy();

    $tidy_options = array(
        'hide-comments' => true,'tidy-mark' => false, 'indent' => false,
        'new-blocklevel-tags' => 'article,footer,header,hgroup,output,progress,section,video',
        'new-inline-tags' => 'audio,details,time,ruby,rt,rp',
        'drop-empty-paras' => false, 
        'doctype' => '<!DOCTYPE HTML>',
        'sort-attributes' => 'none', 'vertical-space' => false,
        'output-xhtml' => true,'wrap' => 180,
        'wrap-attributes' => false,
        'break-before-br' => false,
        'show-body-only' => true
        );
$data = $tidy->repairString($data, $tidy_options, 'UTF8');
echo $data;
Run Code Online (Sandbox Code Playgroud)

这适用于所有类型的输入,除非我正在尝试使用html来嵌入swf文件.
所以,我尝试这个代码:

<object data="http://the_swf_file_url" type="application/x-shockwave-flash" width="853" height="520"> 
    <param name="movie" value="http://the_swf_file_url"> 
</object>
Run Code Online (Sandbox Code Playgroud)

但是RepairString对它进行了条纹处理,并返回一个空字符串.
最奇怪的是: -
如果我输入一些文字以及上面的内容,那么输入就像Hello world<object...>...</object>它可以正常工作一样.
- 如果我指定 …

html php tidy htmltidy

4
推荐指数
1
解决办法
657
查看次数