没有太多运气我一直试图在Visual Studio中附加HTMLTidy c ++库dll,但是每当我遇到不同构建的各种错误时.我正在添加对项目的引用,然后手动选择已复制到项目文件夹中的lib文件夹中的dll.
我试过的第一个dll来自Mark Beaton,我正在使用他的HTMLTidy包装器,因为它似乎是最新的.标准的Win32一个是建立的.
我也尝试从官方的HTMLTidy页面再次构建dll
参考时出错,请帮忙!我尝试从源代码编译,但源代码似乎与VS 2010不兼容.
当我尝试从NotePad ++(v5.9.3)中的TextFX菜单运行HTML Tidy时,出现以下错误:
配置文件"C:\ Program Files(x86)\ Notepad ++\plugins\Config\tidy\HTMLTIDY.CFG"未找到!我会选择我想要的任何默认值!
点击OK后,我得到:
每当我在试图运行HTMLTidy的文档中时,"未知异常"并且我的光标会变为沙漏.
该文件存在于指定的位置,我尝试更改文件的权限,以便Everyone完全控制,但没有区别.
我正在尝试在PowerShell 2.0中使用HTML Tidy .NET包装器.
下面是一个使用C#的工作示例(包装器分发中包含的TestIt.cs):
using Tidy;
Document tdoc = new Document();
Run Code Online (Sandbox Code Playgroud)
我在PowerShell中这样做:
[Reflection.Assembly]::LoadFile("C:\Users\e-t172\Desktop\Tidy.NET\Tidy.dll")
New-Object Tidy.Document
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
New-Object : Constructor not found. Cannot find an appropriate constructor for type Tidy.Document.
At line:1 char:11
+ New-Object <<<< Tidy.Document
+ CategoryInfo : ObjectNotFound: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand
Run Code Online (Sandbox Code Playgroud)
附加信息:
> [Reflection.Assembly]::LoadFile("C:\Users\e-t172\Desktop\Tidy.NET\Tidy.dll").getTypes()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False ITidyDocumentEvents
True True TidyReportLevel System.Enum
True True __MIDL_ITidyDocument_0008 System.Enum
True False DocumentClass System.__ComObject
True False ITidyDocumentEvents_Event
True …
Run Code Online (Sandbox Code Playgroud) 我正在回答我自己的问题,但因为我整夜都在思考这个问题,所以我希望能给其他人带来一些痛苦。如果您在正确安装pytidylib或utidylib后收到以下消息之一,此答案可能会有所帮助。
在 Snow Leopard 上学习 Python 时,我安装了 32 位版本的 Python 2.7,以便可以使用 IDLE 解释器/编辑器。Stackoverflow 有一个很好的解释为什么我必须这样做。
当我安装 utidylib 时,我从“ ”中收到以下错误import tidy
:
' OSError: Couldn't find libtidy, please make sure it is installed
.'
使用 pytidylib,当我尝试 ' from tidylib import tidy_document
' 时出现此错误:
' OSError: Could not load libtidy using any of these names: libtidy,libtidy.so,libtidy-0.99.so.0,cygtidy-0-99-0,tidylib,libtidy.dylib,tidy.
'
如果您遇到这些错误,请阅读此答案。我希望它对你有帮助。
我编译了一个c tidy程序,我收到一个错误,这是他们给出的示例程序
#include "tidy/tidy.h"
#include <stdio.h>
#include <errno.h>
int main(int argc, char **argv )
{
const char* input = "<title>Foo</title><p>Foo!";
TidyBuffer output = {0};
TidyBuffer errbuf = {0};
int rc = -1;
Bool ok;
TidyDoc tdoc = tidyCreate(); // Initialize "document"
printf( "Tidying:\t%s\n", input );
ok = tidyOptSetBool( tdoc, TidyXhtmlOut, yes ); // Convert to XHTML
if ( ok )
rc = tidySetErrorBuffer( tdoc, &errbuf ); // Capture diagnostics
if ( rc >= 0 )
rc = tidyParseString( tdoc, input …
Run Code Online (Sandbox Code Playgroud) 使用以下代码:
$tidy = new tidy();
$clean = $tidy->repairString("<p>Hello</p>");
Run Code Online (Sandbox Code Playgroud)
这包括整个恶作剧中的字符串:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>Hello</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
由于我在"描述"字段中使用它,不时包含一些html标记,我只想用它来修复字符串中的异常,例如未闭合元素,已关闭但未打开的元素等等,不要把它像这样完整的html文档.
如果字符串根本不包含任何html,它应该只返回输入.如果它包含像上面的例子那样的html,它应该修复任何要修复的东西(在这个例子中没什么),而不是将它包装在一个完整的文档中.
任何人都知道如何使HTML Tidy不像这样包装吗?
我的内容在我的旧数据库中既不是有效的HTML也不是XML.考虑到这个事实,很难清理遗留问题,我想在MarkLogic中使用xdmp:tidy来整理它.我目前正在使用ML-8.
<sub>
<p>
<???†?>
</p>
</sub>
Run Code Online (Sandbox Code Playgroud)
我正在通过某种方式将此内容传递给整洁的功能:
declare variable $xml as node() :=
<content>
<![CDATA[<p><???†?></p>]]>
</content>;
xdmp:tidy(xdmp:quote($xml//text()),
<options xmlns="xdmp:tidy">
<assume-xml-procins>yes</assume-xml-procins>
<quiet>yes</quiet>
<tidy-mark>no</tidy-mark>
<enclose-text>yes</enclose-text>
<indent>yes</indent>
</options>)
Run Code Online (Sandbox Code Playgroud)
结果它返回:
<p>
<? ?†?>
</p>
Run Code Online (Sandbox Code Playgroud)
现在这个结果不是有效的xml格式(我通过XML验证器检查过),因为当我尝试将这个XML插入MarkLogic时,它会抛出一个错误,说'MALFORMED BODY | 无效的处理指令名称'.
我对PI进行了一些调查,但没有太多运气.我本可以尝试在没有PI的情况下保存内容,但这也不是一个有效的PI.
我刚刚注意到这tidy_repair_string()
是从空元素中删除我的不间断空格导致我的表崩溃.基本上我已经投入:
<td> </td>
和HTML Tidy正在剥离它们:
<td> </td>
Run Code Online (Sandbox Code Playgroud)
这可能是也可能不是某些Unicode中断,但无论哪种方式都崩溃了.
我见过的唯一相关选项是'quote-nbsp',但似乎不是这样.我认为它无论如何都是默认的.
我如何保留不间断的空间?