2011-01-19 11 views
5

Böyle bir XML dosyası var:XML'im jQuery'yi kullanarak JavaScript nesnelerine ayrıştırmanın en hızlı yolu bu mu?

<content> 
    <box> 
     <var1>A1</var1> 
     <var2>B1</var2> 
     <var3>C1</var3> 
     <var4>D1</var4> 
    </box> 
    <box> 
     <var1>A2</var1> 
     <var2>B2</var2> 
     <var3>C2</var3> 
     <var4>D2</var4> 
    </box> 
    <box> 
     <var1>A3</var1> 
     <var2>B3</var2> 
     <var3>C3</var3> 
     <var4>D3</var4> 
    </box> 
</content> 

Ben JavaScript nesneleri içine ayrıştırmak gerekir 500 box öğesi vardır. Ben iyi çalışır bu kodu kullanıyorum ama deneyimsizim ve belki bir şey eksik ve bunu yapmak için daha iyi/hızlı bir yolu varsa önerilerini almak istiyorum: peşin

var app = { 
    //... 
    box: [], 

    init: function (file) { 
     var that = this; 

     $.ajax({ 
      type: "GET", 
      url: file, 
      dataType: "xml", 
      success: function (xml) { 
       $("box", xml).each(function (i) { 
        var e = $(this); 
        that.box[i] = new Box(i, { 
         var1: e.children("var1").text(), 
         var2: e.children("var2").text(), 
         var3: e.children("var3").text(), 
         var4: e.children("var4").text() 
        }); 
       }); 
      } 
     }); 
    }, 
    //... 
}; 

teşekkürler.

cevap

2

Mümkünse JSON kullanın. Bu şekilde tarayıcı sizin için ayrıştırma işlemini yapar ve herhangi bir işlem sonrası yapmak zorunda kalmazsınız. sunucudan

JSON

{"content": 
    {"box": [ 
    {"var1": "A1", 
    "var2": "B1", 
    "var3": "C1", 
    "var4": "D1"}, 
    {"var1": "A2", 
    "var2": "B2", 
    "var3": "C2", 
    "var4": "D2"}, 
    {"var1": "A3", 
    "var2": "B3", 
    "var3": "C3", 
    "var4": "D3"}]}} 

İstemci JavaScript ben kullanmak zorunda ediyorum bir XML kaynağına sahip

var app = { 
    //... 
    box: [], 

    init: function (file) { 
     var that = this; 

     $.ajax({ 
      type: "GET", 
      url: file, 
      dataType: "json", 
      success: function(result) { 
       that.box = $.map(result.content.box, function(box, i) { 
       return new Box(i, box); 
       }); 
      } 
     }); 
    }, 
    //... 
}; 
+0

gibi bir şey faydalanmak, ancak o zaman nasıl benim yarattığım kutu nesnelerin prototip yöntemleri eklemek olabilir? – VerizonW

+0

Tüm özellikleri, result.content.box dosyasındaki bir nesneyi istediğiniz yöntemlerle kopyalamak için kullanabilirsiniz ... (bunu isterseniz bir 'yapıcı' türü işlevinde yapabilirsiniz). Oldukça zarif değil. Alternatif olarak, tüm yöntemleri başarı işlevi içinde JSON sonuç nesnesine atayabilirsiniz. –

+0

Başka bir deyişle - genellikle, oluşturulan kutu nesnelerine özel bir prototip veremezsiniz. Bunun yerine, JSON ayrıştırıcısının "düz eski veri" nesnelerini, bir şekilde kendinize tamamen işlevsel sürümler vermenize ya da yalnızca daha usül tarzı bir kodla geldikleri şekilde kullanmanız gerekir. –

3

.. ben istemci tarafında JSON dönüştürmek ve daha sonra yükleyiniz .. çok daha kolay ..

}; http://www.thomasfrank.se/xml_to_json.html

Duncan

+0

Teşekkürler, ama bence bu fazladan bir adım atıyor ve xml2json işlevi muhtemelen yöntemime çok benzer bir şey yaptığından performans artışı olmaz. Belki de XML'i sunucudaki JSON'a ayırmak daha iyi bir fikir olur mu ??? – VerizonW

+0

Bu çalışmayı göremiyor gibiyim: xml2json bir işlev değil. – Yster

0

Benim hızlı olacağını tahmin tarayıcı yerli XML desteği kullanabilirsiniz:

burada bulabilirsiniz XML2JSON dönüştürücü kullanılır. Ancak bu, tarayıcılar arasında çeşitlilik göstermektedir (Firefox: DOMParser, IE: XMLDOM ..).

Bunun yerine sadece oluyor ve el ile tüm tarayıcıları taşıma, sen bu harika görünüyor bu https://sites.google.com/a/van-steenbeek.net/archive/explorer_domparser_parsefromstring

+0

Aslında, jQuery'yi kullanarak zaten XML'yi ayrıştırarak, yerel JavaScript DOM yöntemlerinden daha kolay olduğunu düşünüyorum ve tarayıcı farklılıklarını ele alıyor. – VerizonW

+0

Peki emin değilim, ama normal HTML olarak JQuery parse düşünüyorum .. düzgün bir XML içinde

</plaintext> gibi bir şey ekleyerek deneyin, bu mükemmel tamam, jquery ile ayrıştırılmış, bu kullanımdan kaldırılmış HTML "düz metin" olduğunu düşünecektir soru performans hakkında, bu yüzden yerel desteği kullanmak daha hızlı olması gerekiyordu! ama yine bir daha asla bilemezsin ... Doğru bir cevap için kıyas vermelisin ... Cheerz – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">İlgili konular</div> <ul class="relative_list"> <li> 1. <a href="http://tr.voidcc.com/question/p-dtnyhjnx-b.html" target="_blank" title="Javascript'te bir int ayrıştırmanın en iyi yolu"> Javascript'te bir int ayrıştırmanın en iyi yolu </a> </li> <li> 2. <a href="http://tr.voidcc.com/question/p-pejwpcwa-h.html" target="_blank" title="Java'da Java'yı ayrıştırmanın en iyi yolu"> Java'da Java'yı ayrıştırmanın en iyi yolu </a> </li> <li> 3. <a href="http://tr.voidcc.com/question/p-yscvvwfu-o.html" target="_blank" title="En Hızlı Yolu"> En Hızlı Yolu </a> </li> <li> 4. <a href="http://tr.voidcc.com/question/p-fxrigbpx-a.html" target="_blank" title="JSON Nesneleri Javascript nesnelerine eşleme"> JSON Nesneleri Javascript nesnelerine eşleme </a> </li> <li> 5. <a href="http://tr.voidcc.com/question/p-cgywgzkw-n.html" target="_blank" title="Actionscript 3 - yyyy-aa-gg'yi ayrıştırmanın en hızlı yolu ss: dd: bir Date nesnesine ss?"> Actionscript 3 - yyyy-aa-gg'yi ayrıştırmanın en hızlı yolu ss: dd: bir Date nesnesine ss? </a> </li> <li> 6. <a href="http://tr.voidcc.com/question/p-zipsijyv-s.html" target="_blank" title="Javascript, bir sınıfı kaldırmanın en hızlı yolu `&lt;body&gt;`"> Javascript, bir sınıfı kaldırmanın en hızlı yolu `&lt;body&gt;` </a> </li> <li> 7. <a href="http://tr.voidcc.com/question/p-onrdsuxk-k.html" target="_blank" title="Listede bir öğeyi bulmanın en hızlı yolu?"> Listede bir öğeyi bulmanın en hızlı yolu? </a> </li> <li> 8. <a href="http://tr.voidcc.com/question/p-sgfazino-u.html" target="_blank" title="Görüntüyü yeniden boyutlandırmanın en hızlı yolu"> Görüntüyü yeniden boyutlandırmanın en hızlı yolu </a> </li> <li> 9. <a href="http://tr.voidcc.com/question/p-mqgumcac-p.html" target="_blank" title="Java'da oturum açmanın en hızlı yolu?"> Java'da oturum açmanın en hızlı yolu? </a> </li> <li> 10. <a href="http://tr.voidcc.com/question/p-bpvhlkmi-p.html" target="_blank" title="Scala dosyalarını maven kullanarak derlemenin en hızlı yolu nedir?"> Scala dosyalarını maven kullanarak derlemenin en hızlı yolu nedir? </a> </li> <li> 11. <a href="http://tr.voidcc.com/question/p-mikdwzwx-e.html" target="_blank" title="Noktalama işaretlemenin en hızlı yolu C"> Noktalama işaretlemenin en hızlı yolu C </a> </li> <li> 12. <a href="http://tr.voidcc.com/question/p-czcddarv-v.html" target="_blank" title="hızlı yolu"> hızlı yolu </a> </li> <li> 13. <a href="http://tr.voidcc.com/question/p-gpheebpm-h.html" target="_blank" title="Bu Ruby'deki unicode kaçış sıralarını çıkarmanın en iyi yolu mu?"> Bu Ruby'deki unicode kaçış sıralarını çıkarmanın en iyi yolu mu? </a> </li> <li> 14. <a href="http://tr.voidcc.com/question/p-xgyufcly-h.html" target="_blank" title="Büyük boy bitmap'i döndürmenin en hızlı yolu"> Büyük boy bitmap'i döndürmenin en hızlı yolu </a> </li> <li> 15. <a href="http://tr.voidcc.com/question/p-ceimbojo-h.html" target="_blank" title="Kabuk simgesini almanın en hızlı yolu"> Kabuk simgesini almanın en hızlı yolu </a> </li> <li> 16. <a href="http://tr.voidcc.com/question/p-oagfjlfv-w.html" target="_blank" title="Android emülatörünü başlatmanın en hızlı yolu"> Android emülatörünü başlatmanın en hızlı yolu </a> </li> <li> 17. <a href="http://tr.voidcc.com/question/p-tsjhbvoa-e.html" target="_blank" title="Bir Diziye Öğe eklemenin en hızlı yolu"> Bir Diziye Öğe eklemenin en hızlı yolu </a> </li> <li> 18. <a href="http://tr.voidcc.com/question/p-odpyqniw-h.html" target="_blank" title="hızlı yolu"> hızlı yolu </a> </li> <li> 19. <a href="http://tr.voidcc.com/question/p-prbnszid-t.html" target="_blank" title="ArrayList'ten verileri filtrelemenin en hızlı yolu nedir?"> ArrayList'ten verileri filtrelemenin en hızlı yolu nedir? </a> </li> <li> 20. <a href="http://tr.voidcc.com/question/p-zejieadd-g.html" target="_blank" title="Yineleyiciyi bir listeye dönüştürmenin en hızlı yolu"> Yineleyiciyi bir listeye dönüştürmenin en hızlı yolu </a> </li> <li> 21. <a href="http://tr.voidcc.com/question/p-yczvzqck-r.html" target="_blank" title="Javascript yürütme işleminin en iyi yolu nedir?"> Javascript yürütme işleminin en iyi yolu nedir? </a> </li> <li> 22. <a href="http://tr.voidcc.com/question/p-amxflviw-h.html" target="_blank" title="Bu, History.js'yi kullanmanın uygun bir yolu mu?"> Bu, History.js'yi kullanmanın uygun bir yolu mu? </a> </li> <li> 23. <a href="http://tr.voidcc.com/question/p-pweypmur-e.html" target="_blank" title="Saf javascript kullanarak stili ayarlamanın en etkili yolu?"> Saf javascript kullanarak stili ayarlamanın en etkili yolu? </a> </li> <li> 24. <a href="http://tr.voidcc.com/question/p-dgiuyyhv-p.html" target="_blank" title="С ++, boost: tcp: // adr: port/adres dizesi ve port için bir int gibi dizeyi ayrıştırmanın en hızlı yolu hangisidir?"> С ++, boost: tcp: // adr: port/adres dizesi ve port için bir int gibi dizeyi ayrıştırmanın en hızlı yolu hangisidir? </a> </li> <li> 25. <a href="http://tr.voidcc.com/question/p-maklzwyh-b.html" target="_blank" title="Köşe nesneleri ile hızlı doku çizim OpenGL. Bunu yapmanın yolu bu mu?"> Köşe nesneleri ile hızlı doku çizim OpenGL. Bunu yapmanın yolu bu mu? </a> </li> <li> 26. <a href="http://tr.voidcc.com/question/p-wqcdlzuu-g.html" target="_blank" title="Python nesnelerine yeni üye değişkenleri ekleniyor mu?"> Python nesnelerine yeni üye değişkenleri ekleniyor mu? </a> </li> <li> 27. <a href="http://tr.voidcc.com/question/p-ppeavvkk-e.html" target="_blank" title="Bir dosyanın varlığını kontrol etmenin en hızlı yolu NodeJs"> Bir dosyanın varlığını kontrol etmenin en hızlı yolu NodeJs </a> </li> <li> 28. <a href="http://tr.voidcc.com/question/p-sqktirbd-t.html" target="_blank" title="Bir panda DataFrame'ı seçmenin en hızlı yolu nedir?"> Bir panda DataFrame'ı seçmenin en hızlı yolu nedir? </a> </li> <li> 29. <a href="http://tr.voidcc.com/question/p-bipdqech-c.html" target="_blank" title="Hızlı JavaScript dizisi işlemleri"> Hızlı JavaScript dizisi işlemleri </a> </li> <li> 30. <a href="http://tr.voidcc.com/question/p-ksfoekpv-r.html" target="_blank" title="En hızlı/en güvenli dosya bulma/ayrıştırma?"> En hızlı/en güvenli dosya bulma/ayrıştırma? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422829"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Son soru </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://tr.voidcc.com/question/p-watwcslp-t.html" target="_blank" title="Aygıt önyükleme yapılamıyor çünkü diskte bulunamıyor çünkü"> Aygıt önyükleme yapılamıyor çünkü diskte bulunamıyor çünkü </a> </li> <li class="side_article_list_item"> 2. <a href="http://tr.voidcc.com/question/p-zhnseyav-w.html" target="_blank" title="Öğrenme DüğümüJS & MongoDB Docker oluşturma"> Öğrenme DüğümüJS & MongoDB Docker oluşturma </a> </li> <li class="side_article_list_item"> 3. <a href="http://tr.voidcc.com/question/p-yfubaixh-w.html" target="_blank" title="ios 11 - UIBarButtonIt içerisindeki UIButton öğesi, otomatik düzenleme hatası veriyor"> ios 11 - UIBarButtonIt içerisindeki UIButton öğesi, otomatik düzenleme hatası veriyor </a> </li> <li class="side_article_list_item"> 4. <a href="http://tr.voidcc.com/question/p-bsqvctku-x.html" target="_blank" title="Çağrı :: setFetchMode() Windows üzerinde Xampp üzerinde, PHP 7, drupal 7 ile çalışıyorum ve bir anda aşağıdaki hatayı başlıyorsun"> Çağrı :: setFetchMode() Windows üzerinde Xampp üzerinde, PHP 7, drupal 7 ile çalışıyorum ve bir anda aşağıdaki hatayı başlıyorsun </a> </li> <li class="side_article_list_item"> 5. <a href="http://tr.voidcc.com/question/p-vcrbvuki-v.html" target="_blank" title="ACL - Pasif"> ACL - Pasif </a> </li> <li class="side_article_list_item"> 6. <a href="http://tr.voidcc.com/question/p-hazymcdo-w.html" target="_blank" title="Sunucu tarafında (PHP) SVG ve PNG görüntüsü nasıl oluşturulur? Kumaş js"> Sunucu tarafında (PHP) SVG ve PNG görüntüsü nasıl oluşturulur? Kumaş js </a> </li> <li class="side_article_list_item"> 7. <a href="http://tr.voidcc.com/question/p-gttnkhyr-v.html" target="_blank" title="Doktrin, bir varlık üzerinde eşlenmiş bir görünüm için bir tablo oluşturmaya çalışmak nasıl?"> Doktrin, bir varlık üzerinde eşlenmiş bir görünüm için bir tablo oluşturmaya çalışmak nasıl? </a> </li> <li class="side_article_list_item"> 8. <a href="http://tr.voidcc.com/question/p-omtgzdaj-z.html" target="_blank" title="İkili operatör '&gt; =', 'String.IndexDistance?' Türünde işlenenlere uygulanamaz. (Aka '&lt;Int&gt; Opsiyonel') ve 'Int'"> İkili operatör '&gt; =', 'String.IndexDistance?' Türünde işlenenlere uygulanamaz. (Aka '&lt;Int&gt; Opsiyonel') ve 'Int' </a> </li> <li class="side_article_list_item"> 9. <a href="http://tr.voidcc.com/question/p-rlgfesym-t.html" target="_blank" title="Kotlin derleyici, değişkenin do-while döngüsünde null olarak olmadığını çözemiyor"> Kotlin derleyici, değişkenin do-while döngüsünde null olarak olmadığını çözemiyor </a> </li> <li class="side_article_list_item"> 10. <a href="http://tr.voidcc.com/question/p-zmicrkqg-u.html" target="_blank" title="PowerShell İşlevlerle Çalışmada Hata Giderme"> PowerShell İşlevlerle Çalışmada Hata Giderme </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i>&nbsp;İlgili konular</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://tr.voidcc.com/question/p-dtnyhjnx-b.html" target="_blank" title="Javascript'te bir int ayrıştırmanın en iyi yolu"> Javascript'te bir int ayrıştırmanın en iyi yolu </a> </li> <li class="side_article_list_item"> 2. <a href="http://tr.voidcc.com/question/p-pejwpcwa-h.html" target="_blank" title="Java'da Java'yı ayrıştırmanın en iyi yolu"> Java'da Java'yı ayrıştırmanın en iyi yolu </a> </li> <li class="side_article_list_item"> 3. <a href="http://tr.voidcc.com/question/p-yscvvwfu-o.html" target="_blank" title="En Hızlı Yolu"> En Hızlı Yolu </a> </li> <li class="side_article_list_item"> 4. <a href="http://tr.voidcc.com/question/p-fxrigbpx-a.html" target="_blank" title="JSON Nesneleri Javascript nesnelerine eşleme"> JSON Nesneleri Javascript nesnelerine eşleme </a> </li> <li class="side_article_list_item"> 5. <a href="http://tr.voidcc.com/question/p-cgywgzkw-n.html" target="_blank" title="Actionscript 3 - yyyy-aa-gg'yi ayrıştırmanın en hızlı yolu ss: dd: bir Date nesnesine ss?"> Actionscript 3 - yyyy-aa-gg'yi ayrıştırmanın en hızlı yolu ss: dd: bir Date nesnesine ss? </a> </li> <li class="side_article_list_item"> 6. <a href="http://tr.voidcc.com/question/p-zipsijyv-s.html" target="_blank" title="Javascript, bir sınıfı kaldırmanın en hızlı yolu `&lt;body&gt;`"> Javascript, bir sınıfı kaldırmanın en hızlı yolu `&lt;body&gt;` </a> </li> <li class="side_article_list_item"> 7. <a href="http://tr.voidcc.com/question/p-onrdsuxk-k.html" target="_blank" title="Listede bir öğeyi bulmanın en hızlı yolu?"> Listede bir öğeyi bulmanın en hızlı yolu? </a> </li> <li class="side_article_list_item"> 8. <a href="http://tr.voidcc.com/question/p-sgfazino-u.html" target="_blank" title="Görüntüyü yeniden boyutlandırmanın en hızlı yolu"> Görüntüyü yeniden boyutlandırmanın en hızlı yolu </a> </li> <li class="side_article_list_item"> 9. <a href="http://tr.voidcc.com/question/p-mqgumcac-p.html" target="_blank" title="Java'da oturum açmanın en hızlı yolu?"> Java'da oturum açmanın en hızlı yolu? </a> </li> <li class="side_article_list_item"> 10. <a href="http://tr.voidcc.com/question/p-bpvhlkmi-p.html" target="_blank" title="Scala dosyalarını maven kullanarak derlemenin en hızlı yolu nedir?"> Scala dosyalarını maven kullanarak derlemenin en hızlı yolu nedir? </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://tr.voidcc.com/contact">Bize ulaşın</a></li> <li>© 2020 TR.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>