2017-01-06 1 views
0

ich mit dem folgende HTML-Layout auf Hunderte von Seiten zu tun habe, die ich mag von Daten kratzen:Mit normalisieren-Raum mit XPath entfernen Whitespaces

<div class="store stores_show cms_page_text"> 
     <div class="row"> 
     <div class="col col_4 m_col_8 stores_list_address"> 
      <p class="store_header"> 
    Russell & Bromley      
      </p> 
    Unit 3A 
     <br/> 
    35-38 George Street<br/> 
       TW9 1HY          
     </div> 
     <div class="col col_4 m_col_8 stores_list_contact"> 
     <strong>T.</strong>   02089486805<br/>               </div> 

XPath folgenden wird ‚& Bromley Russell extrahiert ‘, aber es extrahiert auch Leerzeichen, die ich nicht will:

// * [@ id = "stores_list"]/div [2]/div/div [1]/p

Wie kann ich die Normalize-Space-Funktion mit dem obigen XPath verwenden, um Leerzeichen zu entfernen?

Microsoft Beleg:

https://msdn.microsoft.com/en-us/library/ms256063(v=vs.110).aspx

Beispiel Streicher:

normalize-space ("abc def")

<xsl:template match="/text"> 
Unnormalized: 
"<xsl:value-of select='.'/>" 
Normalized: "<xsl:value-of select='normalize-space()'/>" 
</xsl:template> 

Ich kann das nicht bekommen um meinen eigenen XPath zu bearbeiten, irgendwelche Ideen?

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich möchte einen zweiten Schritt vermeiden, wie z. B. das Löschen von Leerzeichen über Excel.

Vielen Dank im Voraus, total über meinen Kopf mit diesem als Newb mit 0 Erfahrung.

+0

bitte veröffentlichen Sie Ihre HTML – derloopkat

Antwort

0

Sie können dies versuchen:

  1. den Wert extrahieren, indem Sie mit XPath.

  2. Speichern Sie den Wert in einer Zeichenfolge.

  3. die normalize-space-Funktion Verwenden Sie die vorderen und hinteren weißen Räumen

+0

Vielen Dank für Ihre Eingabe, Jaya zu entfernen; Leider scheint dies für mich keine geeignete Lösung zu sein, da ich die gleichen Informationen regelmäßig aus Tausenden von Seiten extrahieren werde. Deshalb möchte ich dies in der Extraktionsphase so oft wie möglich automatisieren (anstatt eine Sekunde zu benötigen) Schritt wie Excel-TRIM-Funktion oder die Schritte, die Sie vorgeschlagen) – Dampe

+0

Ich habe etwas über Normalize-Space-und Übersetzungsfunktion in der Dokumentation https://www.w3.org/TR/xpath/#function-normalize-space gesehen. Ich hoffe, das wäre hilfreich. –

+0

Danke dafür, es sieht so aus, als ob es auf dem richtigen Weg ist, aber ich kann es nicht mit meinem eigenen XPath arbeiten. – Dampe

0

Versuchen

normalize-space(//*[@id="stores_list"]/div[2]/div/div[1]/p) 
+0

Hey Stephan, danke für deine Antwort; Ich habe deinen Vorschlag ausprobiert, aber leider hat es nicht funktioniert - keiner der Texte wurde extrahiert. Hast du eine Idee, was fehlt? Ich habe ein paar Variationen des obigen XPath ausprobiert und kann es nicht scheinen, um es sogar ein bisschen zu arbeiten. – Dampe

+0

Es ist besser, einen Kontext/eine Erläuterung mit Code zu verwenden, da dies die Antwort für das OP und für zukünftige Leser nützlicher macht. – EJoshuaS