2016-04-08 13 views
1

Bir Google Apps komut dosyası kullanarak, çok kötü yapılandırılmış bir HTML belgesine sahip bir web sitesinden bazı verileri kazıyorum, bu nedenle XmlService.parse() ayrıştırılamıyor.Google Apps Komut Dosyası'nda, doğrulanmadığı kadar kötü yapılandırılmış HTML'yi nasıl ayrıştırabilirsiniz?

"Belgenin" nasıl göründüğü şu şekildedir, çok fazla çizgi çıkardım, ancak yapıyı korudum. I kapmak istiyorum

<html> 
<head> 
    <link href="css/bootstrap.min.css" rel="stylesheet"> 
    <title> Funny Site </title> 
</head> 
<body> 

<!DOCTYPE html> 
<html> 
<title> Funny Site</title> 
<head> 
<meta charset="utf-8"> 

    </head> 
    <body> 
    <div class="mainhead"> 
     <div class="leftHead"> 
     </div> 

<script> 
    $(document).ready(function(){ 
    //$(".overlay").show(); 
    }); 
</script> 
<div class="contain"> 

    <div class="maine"> 
     </div> 

    <div class="maine2"> 

<div class="footer1">   

<div class="footer2"> 
    <div class="data"> 
     <div class="dc"> 
      <div class="smalltxt">Field1</div> 
      <div class="largetxt">value1</div> 
     </div> 
     <div class="dc"> 
      <div class="smalltxt">Field2</div> 
      <div class="largetxt">value2</div> 
     </div> 
     <div class="dc"> 
      <div class="smalltxt">Field3</div> 
      <div class="largetxt adjFont" id ="someId">value3</div> 
     </div> 
     <div class="dc" > 
      <div class="smalltxt">Field4</div> 
      <div class="largetxt adjFont">value4</div> 
     </div> 
     <div class="dc" style="border:none;"> 
      <div class="smalltxt">Field5</div> 
      <div class="largetxt">value5</div> 
     </div> 
    </div> 
</div>  
</body> 
</html>  

veri value5 ile sınıf data, value1 ile div içindedir.

En azından data sınıfını nasıl yakalayabilirsin? Gelebildiğim tek şey normal ifadeler uygulamak, ama bundan daha iyi bir yolu var mı?

+1

Düzenli ifadeler de öğretici ve test kontrol edebilirsiniz. Bazen bir melez yaklaşım: XmlService tarafından ayrıştırılmak için yeterince aklı olan bir belgenin bir kısmını çıkartın. –

cevap

-2

XSLT'yi uygulamayı deneyebilirsiniz. wikipedia itibaren

:

XSLT (Genişletilebilir Stil Sayfası Dili Dönüşümleri) web sayfaları, düz metin veya içine HTML gibi diğer XML belgelerinin veya diğer biçimleri içine XML belgeleri dönüştürmek için bir dil olduğunu XSL Biçimlendirme Nesneler.

Bunu değiştirmek istediğiniz nitelikleri, değerleri ve hatta öğeleri kaldırmak veya değiştirmek için bunu kullanabilirsiniz.

Ne olduğunu rezil w3schools site

+1

Bunun nasıl işe yaracağından emin değilim, çünkü HTML çok kaotik, XML'den uzak bir şeye ayrıştırılamıyor, yalnızca bu sitenin görüntülenmesine izin veren tarayıcının merhametidir. Onunla yapabileceğim en iyi şey, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'd' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' dır. Şu anda, bu çalışır, ancak ileride başvurmak için, bu soruyu araştırmak ve kaba kuvvet dizisi manipülasyonundan daha iyi bir şey olup olmadığını görmek istedim. –

+0

XSLT yapmaya çalıştığınız şeyi yapabilir. Kontrol etmeyi bile denemedin sanki. – SwagBomb