2

私の大学は成績表を提供していますが、これは非常に紛らわしく、最終結果の計算は非常に困難です。すべての被験者がファイナルの重みが異なるためです。

私はBCA結果計算機を開発しています。これがhttps://www.bobdn.com/IGNOU_BCA_Result.aspxです

divに次のコードがあります(大学のWebサイトから返されたため変更できません)

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>Grade Card</TITLE>
<h1> Grade Card </h1>
<h1>&nbsp;</h1>
(All programs Except for BIT/ADIT)

</HEAD>
<BODY  bgcolor=Lavender>


<form name=FRMResult method=post action=Result.asp>
<center> <font size=+2> Indira Gandhi National Open University </font>
 <br> Grade Card Status as on May 09, 2012<br> (For information only)</center>
 Enrolment Number: 092853268<br> Name: SHASHWAT TRIPATHI<br> Program: BCA<p><font size=-1> The Status is indicative only & cannot be used as a substitute for the final grade card which is sent by SRE at the end of a semester.</font><br><table border=1 width='80%' background='ignou.gif'><tr><td width='10%'>  Course Code </td><td width='10%' align=center>  Asgn1 </td><td width='10%' align=center>  Asgn2 </td><td  width='10%' align=center>  Asgn3 </td><td  width='10%' align=center>  Asgn4 </td><td  width='10%'>  Term End Theory </td><td  width='10%'>  Term End Practical</td><td width='10%'>  Status </td></tr><tr><td width='5%' >BCS61</td><td width='10%' >80</td><td width='10%' >73</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%' >67</td><td width='20%' >Completed</td></tr><tr><td width='5%' >BSHF1</td><td width='10%' >35</td><td width='10%' >35</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >41</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS5</td><td width='10%' >80</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS6</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >59</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS60</td><td width='10%' >90</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >53</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS610</td><td width='10%' >60</td><td width='10%' >60</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS611</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >52</td><td width='10%' >88</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS612</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >70</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS62</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%' >91</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS63</td><td width='10%' >90</td><td width='10%' >93</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%' >85</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS64</td><td width='10%' >59</td><td width='10%' >59</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS65</td><td width='10%' >50</td><td width='10%' >53</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >97</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS66</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >57</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS67</td><td width='10%' >83</td><td width='10%' >83</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >93</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS68</td><td width='10%' >63</td><td width='10%' >63</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >62</td><td width='10%' >77</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS70</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >45</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS71</td><td width='10%' >90</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%'>-</td><td width='20%' >Not Completed</td></tr><tr><td width='5%' >FST1</td><td width='10%' >66</td><td width='10%' >66</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >73</td><td width='10%'>-</td><td width='20%' >Completed</td></tr></table><br/><font size=-1 >Not with standing the result published/declared, any case of UFM(Unfairmeans) if found will make such result null and void.</font><p>&nbsp;</p><u>Note:- Assignment 4 and TE Practical do not apply to all the courses.</u><font size=-1 color=blue><center>Disclaimer: This electronically generated information does not have any legal validity</font></center>
<P>&nbsp;</P>



<a href="javascript:history.back()">Back </a>

<!--#'include file=scroll.js-->

</BODY>
</HTML>

このコードをIDのdivに入れたとしましょう。では、tempDiv 学生の名前とプログラムをから抽出するにはどうすればよいですか。tempDiv

また、これは大学からのHTMLの関連部分を示すjsFiddleです。

4

3 に答える 3

2

HTMLが同じままであると仮定すると...次のコードを使用できます

var z = $('form').html();    //grab the html
var za = z.split('<br>',4);  //split using <br> tags
var name = za[3];            //the element which has the name

var purename = name.replace('Name: ','');  //replace 'Name: ' with space to get pure name
alert(purename);​ //alert it

IGNOUが変更された場合、htmluはそれを再度編集する必要があります。

JSFiddleの例

于 2012-05-15T07:03:54.983 に答える
1

この回答は、リモートサーバーからHTMLを取得し、HTMLページにロードしていることを前提としています。ページに表示され、DOMのコンテキストで、次のコードがHTMLから名前を取得します。

var form = $('form').text();
var nameIndex = form.indexOf("Name: ");
//alert(i);
alert(form.substring(134 + 5));   // prints the name

デモについては、 http://jsfiddle.net/bsBCR/2/を参照してください。

注意点として、多くのシステムには、システムからより簡単にデータを取得するために使用できるAPIがあります。APIは、アプリケーションとサードパーティアプリケーション間の契約のようなものであり、サードパーティがそのURLの「メソッド署名」を変更しないことを約束した場合、同じURLを使用してデータを取得することを約束します。

RAW HTMLを取得して解析する場合、契約はありません。平易な英語では、大学がそのHTMLの構造を変更すると、アプリケーションが壊れます。それをリスクとして追加し、将来必要になった場合にその問題を解決するための戦略を考え出す準備をしてください。

于 2012-05-15T06:32:41.823 に答える
1

これはうまくいくかもしれません:

function getNameProgram(){

   var strTotal=document.getElementById('tempDiv').innerHTML;
   var ind1=strTotal.indexOf('Name');
   var ind2=strTotal.indexOf('Program');
   var ind3=strTotal.indexOf('<P><FONT size=-1>');
   var strName=strTotal.substring(ind1,ind2);
   var strProgram=strTotal.substring(ind2,ind3);
   strName=$.trim(strName.replace('Name:','').replace('<BR>',''));
   strProgram=$.trim(strProgram.replace('Program:',''));

   alert('MYNAME:'+ strName + '\n' + 'MYPROGRAM:' + strProgram  );

}
于 2012-05-15T06:27:29.800 に答える