2014-02-18 10 views
6

Ich habe teilweise Erfolg in meinem Versuch, HTML in eine DOCX-Datei mit HTMLAgilityPack und der DOCX-Bibliothek zu schreiben. Allerdings enthält verschlüsselte HTML-Text ich in die DOCX-Datei bin Einfügen wie:Wie kann ich decodiertes HTML mit HTMLAgilityPack schreiben?

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 

Was ich es mehr sein wollen ist wie folgt:

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 

etwas Kontext zu zeigen, diese ist der Code, den ich verwende:

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); 
      } 
     } 
    } 

. . .

Die relevanteste Linie besteht kein Zweifel:

sourceText.Add(sText.InnerText); 

es etwas anderes als Innertext enthalten sein sollte?

Ist es möglich, so etwas wie:

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

?

Intellisense funktioniert nicht, obwohl das Projekt kompiliert und ausgeführt wird; zu sehen, welche anderen Optionen es neben InnerText für HTMLNode gibt, ist somit fruchtlos; Ich weiß, dass es outer, Innerhtml und OuterHMTL, obwohl ...

Antwort

5

Versuchen mit:

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

Examples

+0

Danke; musste nur eine Verweise auf System.Web hinzufügen –

10

Sie HtmlEntity.DeEntitize(sText.InnerText) von HTMLAgilityPack verwenden können.

+0

Ich bevorzuge diese Antwort, weil kein anderer Code als HtmlAgilityPack. –