0

HtmlAgilityPack を使用してドキュメントを作成、変更、保存しようとしています。しかし、ドキュメントに php タグが含まれていると、保存しようとするとうまくいきません。正規表現は使いたくない、落とし穴がたくさんあります。問題に対するエレガントな解決策はありますか?

コード:

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 に答える