2016-07-14 3 views
2

BackGround Inforetrive die URL von einem Html Img Tag

derzeit an einem C# web api arbeiten, die ausgewählt Img URLs als base64 werden wiederkommen. Ich habe derzeit die Funktionalität, die die base64-Konvertierung vortäuschen würde, aber ich bekomme eine große Menge an Text, die auch Img URLs enthalten, die ich aus der Zeichenfolge ausschneiden und es meiner Funktion geben muss, um das img in Base 64 zu konvertieren. Ich lese auf einer Lib. ("HtmlAgilityPack;"), die diese Aufgabe leicht machen sollte, aber wenn ich es benutze, bekomme ich "HtmlDocument.cs" nicht gefunden. Ich übermittle jedoch kein Dokument, sondern sende eine Zeichenfolge, die HTML ist. Ich lese das Dokument und es soll auch mit einem String funktionieren, aber es funktioniert nicht für mich. Dies ist der Code, der "HtmlAgilityPack" verwendet.

NON ARBEITS CODE

foreach(var item in returnList) 
        { 
         if (item.Content.Contains("~~/picture~~")) 
         { 
          HtmlDocument doc = new HtmlDocument(); 
          doc.Load(item.Content); 

Fehlermeldung von HtmlAgilityPack

enter image description here

Frage ich einen String erhalte die Html von Sharepoint ist. Diese HTML-Zeichenfolge kann mit Überschrifts-Token und/oder Bild-Tokens in Token umgewandelt werden. Ich versuche zu isolieren, holen Sie den HTML-Code aus dem HTML-Tag img src. Ich verstehe, dass Regex möglicherweise unpraktisch ist, aber ich würde in Betracht ziehen, mit einem Regex-Ausdruck zu arbeiten, ist es verfügbar, die URL von img src abzurufen.

Beispiel String

Bullet~~Increased Cash Flow</li><li>~~/Document Text Bullet~~Tax Efficient Organizational Structures</li><li>~~/Document Text Bullet~~Tax Strategies that Closely Align with Business Strategies</li><li>~~/Document Text Bullet~~Complete Knowledge of State and Local Tax Obligations</li></ul><p>~~/Document Heading 2~~is the firm of choice</p><p>~~/Document Text~~When it comes to accounting and advisory services is the unique firm of choice. As a trusted advisor to our clients, we bring an integrated client service approach with dedicated industry experience. Dixon Hughes Goodman respects the value of every client relationship and provides clients throughout the U.S. with an unwavering commitment to hands-on, personal attention from our partners and senior-level professionals.</p><p>~~/Document Text~~of choice for clients in search of a trusted advisor to deal with their state and local tax needs. Through our leading best practices and experience, our SALT professionals offer quality and ease to the client engagement. We are proud to provide highly comprehensive services.</p> 

    <p>~~/picture~~<br></p><p> 
      <img src="/sites/ContentCenter/Graphics/map-al.jpg" alt="map al" style="width&#58;611px;height&#58;262px;" />&#160; 
    <br></p><p><br></p><p> 
    ~~/picture~~<br></p><p> 
      <img src="/sites/ContentCenter/Graphics/Firm_Telescope_Illustration.jpg" alt="Firm_Telescope_Illustration.jpg" style="margin&#58;5px;width&#58;155px;height&#58;155px;" /> </p><p></div><div class="ExternalClassAF0833CB235F437993D7BEE362A1A88A"><br></div><div class="ExternalClassAF0833CB235F437993D7BEE362A1A88A"><br></div><div class="ExternalClassAF0833CB235F437993D7BEE362A1A88A"><br></div> 

Wichtige

ich mit einem HTML-String arbeite, keine Datei.

+0

Was genau ist der Fehler? – SLaks

+3

Obwohl ich keine Antwort auf Ihre Frage habe, könnte diese Frage für Sie interessant sein: http: // stackoverflow.com/questions/4257359/regulärer Ausdruck-zu-erhalten-die-src-of-Bilder-in-c-shar – nbokmans

+0

@nbokmans +1 Dankeschön –

Antwort

0

Das Problem, das Sie haben, ist, dass C# für eine Datei sucht, und da sie es nicht zu finden ist, sagt es Ihnen. Dies ist kein Fehler, der Ihre App bremst, sondern nur, dass die Datei nicht gefunden wird und die Lib die angegebene Zeichenfolge liest. Diese Dokumentation finden Sie hier https://htmlagilitypack.codeplex.com/SourceControl/latest#Trunk/HtmlAgilityPackDocumentation.shfbproj. Der folgende Code ist ein Ausstechmodell, das jeder benutzen kann.

Wichtige

C# ist auf der Suche nach einer Datei, die nicht angezeigt werden können, weil es sich um eine Zeichenfolge, die zugeführt wird. Das ist die Nachricht, die Sie bekommen, aber Ihre wird immer noch mit Übereinstimmung mit dem bereitgestellten Dokument funktionieren und wird Ihren Code nicht beeinflussen.

Exmample-Code

HtmlAgilityPack.HtmlDocument htmlDocument = new HtmlAgilityPack.HtmlDocument(); 
htmlDocument.LoadHtml("YourContent"); // can be a string or can be a path. 

HtmlAttribute att = url.Attributes["src"]; 
Uri imgUrl = new System.Uri("Url"+ att.Value); // build your url 
0
string matchString = Regex.Match(original_text, "<img.+?src=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase).Groups[1].Value; 

Es wurde mehrmals here gefragt.

auch here

+0

Richtig, aber diese Frage ist nicht über eine Regex-Lösung. – wp78de