0

我正在尝试使用 HtmlAgilityPack 制作、更改并保存文档。但是如果一个文档包含 php-tags,它们会在尝试保存时出错。正则表达式不想用,有很多坑。这个问题有什么优雅的解决方案吗?

代码:

var Doc = new HtmlAgilityPack.HtmlDocument();
Doc.DetectEncodingAndLoad("page.html");
.............
string Result = Doc.DocumentNode.OuterHtml;

资源:

<html>
<?php echo "hello"; ?>
</html>

结果:

<html>
<?php echo="" "hello";=""?>
</html>

提前致谢。

4

1 回答 1

1

今天不支持它,但是如果您更改源代码并重新编译,您可以修复它(毕竟,这就是开源的用途......)。转到 HtmlNode.cs,找到该internal void WriteAttributes(TextWriter outText, bool closing)函数,然后添加以下代码:

internal void WriteAttributes(TextWriter outText, bool closing)
{
    if (Name.StartsWith("?"))
    {
        int len = _outerlength - 3 - _namelength;
        if (len > 0)
        {
            outText.Write(OwnerDocument.Text.Substring(_namestartindex + _namelength, len));
            return;
        }
    }
    ....
}
于 2013-04-18T07:52:50.783 回答