HTMLAgilityPackを使用してデコードされたHTMLを書き出すにはどうすればよいですか?

c# decode html html-agility-pack innertext

質問

私は、HTMLAgilityPackとDOCXライブラリを使ってDOCXファイルにHTMLを書き込もうとすると、部分的な成功を収めています。ただし、.docxファイルに挿入するテキストには、次のようなエンコードされたHTMLが含まれています。

La ciudad de Los Ángeles (California) ha sincronizado su red completa de semáforos —casi 4.500—, que cubre una zona de 1.215 kilómetros cuadrados (469 millas cuadradas). Según el diario

私はそれがもっと欲しいものです:

La ciudad de Los Angeles (California) ha sincronizado su red completa de semaforos - casi 4.500 -, que cubre una zona de 1.215 kilometros cuadrados (469 millas
cuadradas). Segun el diario

いくつかのコンテキストを表示するために、これは私が使用しているコードです:

private void ParseHTMLAndConvertBackToDOCX()
{
    List<string> sourceText = new List<string>();
    List<string> targetText = new List<string>();
    HtmlAgilityPack.HtmlDocument htmlDocSource = new HtmlAgilityPack.HtmlDocument();
    HtmlAgilityPack.HtmlDocument htmlDocTarget = new HtmlAgilityPack.HtmlDocument();

    // There are various options, set as needed
    htmlDocSource.OptionFixNestedTags = true;
    htmlDocTarget.OptionFixNestedTags = true;

    htmlDocSource.Load(sourceHTMLFilename);
    htmlDocTarget.Load(targetHTMLFilename);

    // Popul8 generic list of string with source text lines
    if (htmlDocSource.DocumentNode != null)
    {
        IEnumerable<HtmlAgilityPack.HtmlNode> pNodes = htmlDocSource.DocumentNode.SelectNodes("//text()");

        foreach (HtmlNode sText in pNodes)
        {
            if (!string.IsNullOrWhiteSpace(sText.InnerText))
            {
                sourceText.Add(sText.InnerText);
            }
        }
    }

。 。 。

最も適切な行は間違いありません:

sourceText.Add(sText.InnerText);

InnerText以外のものでなければならないのでしょうか?

次のようなことが可能ですか?

sourceText.Add(sText.InnerText.Decode());

インテリセンスは、プロジェクトがコンパイルされて実行されているにもかかわらず、これを使用していません。 HTMLNodeのためのInnerTextのほかに何があるかを見てみると、無駄です。私はOuterText、InnerHTML、OuterHMTLがあることを知っています...

受け入れられた回答

試してみてください:

sourceText.Add(HttpUtility.HtmlDecode(myEncodedString));


人気のある回答

HtmlEntity.DeEntitize(sText.InnerText)使用できます。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ