Wie extrahiere ich HTML-Elemente?

Wie extrahiere ich HTML-Elemente?

Ich habe einige Hundert dieser Divs, die ich sortieren und filtern muss.

Ich möchte DAS GESAMTE HTML entfernen und nur Folgendes übrig lassen:

Beispiel

  • Name= Keith
  • Email= [E-Mail][email geschützt][/Email]
  • Speichern= Geschäft 1 (Es gibt nur 2 Optionen: Geschäft 1, Geschäft 2)

Der gesamte folgende Code befindet sich in einer einzelnen Zelle, es gibt also etwa 400 Zellen

<div userid=""286"">
    <div id=""694"">
        <h1 style=""display:none"">Keith</h1>
        <div>
            <label class=""ufo-cform-label"">Name</label>
        </div>
        <div>Keith</div>
    </div>
    <div id=""697"">
        <h1 style=""display:none"">[email protected]</h1>
        <div>
           <label class=""ufo-cform-label""> Email Address</label>
        </div>
        <div>[email protected]</div>
    </div>
    <div id=""698"">
        <h1 style=""display:none"">Store 1</h1>
        <div>
            <label class=""ufo-cform-label"">Please choose your closest store</label>
        </div>
        <div>Store 1</div>
    </div>
</div>

Ist das überhaupt in Excel möglich? Vielen Dank für jede Anleitung.

Antwort1

Leider fehlen Ihrer Frage viele Details, was eine Beantwortung schwierig macht.

Sind die Zellen im gleichen Format? Ändert sich das HTML oder nur die Werte? Suchen Sie immer nach Name, E-Mail und Store? Sind die Zeilenumbrüche an der gleichen Stelle? Sie erwähnen auch nicht, ob Sie eine Arbeitsblattformel oder VBa verwenden möchten.

Basierend auf dem von Ihnen angegebenen Beispiel sollte dieses VBa die Grundlagen abdecken oder Ihnen zumindest genug für den Einstieg bieten.

Sub DoTheThingTheyWant()

Dim myValue As String
myValue = Range("A1").Value

Dim myValueSplit() As String
myValueSplit = Split(myValue, ">")

Dim nameSplit() As String


Range("B1").Value = "Name: " & GetValue(myValueSplit, 9)
Range("B2").Value = "Email: " & GetValue(myValueSplit, 13)
Range("B3").Value = "Store: " & GetValue(myValueSplit, 29)

End Sub


Function GetValue(myValueSplit() As String, pos As Integer)

Dim result() As String

result = Split(myValueSplit(pos), "<")

GetValue = result(0)


End Function

Denken Sie daran, immer zuerst eine Kopie Ihrer Arbeit als Sicherungskopie zu speichern, da Makros nichts rückgängig machen können!!

Antwort2

Ein bisschen spät dran, aber ich brauchte selbst eine Antwort und musste es manuell ohne VBA machen. Habe einfach verschachtelte Ersetzungen verwendet, was für Nicht-VBA-Benutzer ganz einfach ist:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([@Description],"<html-blob>",""),"gt;",""),"</i>",""),"<i>",""),"</html-blob>",""),"</a>",""),"amp;",""),"<br />",""),"</span>",""),"&nbsp",""),"<a href=",""),"</b>",""),"<span>",""),"<br>",""),"<b>",""),"</u>",""),"<u>","")

Um es zu verwenden, tauschen Sie „[@Description]“ gegen Ihre Quelldaten aus.

Um mehr hinzuzufügen, kopieren Sie einfach die mittlere Ersetzungsfunktion und sehen Sie folgendermaßen aus:

SUBSTITUTE([@Description],"<html-blob>","")

und füge es in der Formel in der Quelle ein, hier "[@Description]", da ich dies in einer Tabelle verwendet habe. Ändere den Duplikatsersatz.

verwandte Informationen