2017-09-05 12 views
1

OracleフォームでXpath(4ex:/html/body/table/tbody/tr[1]/td[6])を使用してhtmlファイルの値の値を表示したい場合は、それは?OracleフォームでXpathを使用してhtml(xml)ファイル内の要素を読み取り、表示します

オラクルの形で私の出力は次のようになります。

0015: IF :NB_CNTRL.FROM_DATE IS NOT NULL THEN 
0016: LV_SQL := LV_SQL || ' AND TRUNC(NB_RECEIPT_DATE) >= ''' ||to_char(:NB_CNTRL.FROM_DATE, 'dd-MON-rrrr')||''''; 

sample of HTML file

<!-- saved from url=(0043)file:///c:/FRM_05.fmb.html --> 
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <!--<base href="\\HTMLPictures\">--><base href="."> 
    <style type="text/css"> 
     body,html,table {font-family: "lucida grande",tahoma,verdana,arial,sans-serif;font-size: 12px;line-height: 1.5em;} 
    </style> 
    <title>Compare</title> 

</head> 
<body> 

<table width="100%" border="0"> 
<thead> 
    <tr> 
    <th width="30%">Name</th> 
    <th width="50px">Changes</th> 
    <th width="20px">&nbsp;</th> 
    <th width="35%">Value Old</th> 
    <th width="20px">&nbsp;</th> 
    <th width="35%">Value New</th> 
    </tr> 
</thead> 
<tbody> 
<tr class="lin"><td class="lvl8">(adjoining line)</td><td></td><td class=""></td><td class="">0015: IF :NB_CNTRL.FROM_DATE IS NOT NULL THEN</td><td class=""></td><td class="">0015: IF :NB_CNTRL.FROM_DATE IS NOT NULL THEN</td></tr> 
<tr class="lin"><td class="lvl8">(line changed)</td><td><img src="./Compare_files/changes_mod.gif"></td><td class="cmpChanged"></td><td class="cmpChanged">0016: LV_SQL := LV_SQL || ' AND TRUNC(NB_RECEIPT_DATE) &gt;= ''' ||to_char(:NB_CNTRL.FROM_DATE, 'dd-MON-yyyy')||'''';</td><td class="cmpChanged"></td><td class="cmpChanged">0016: LV_SQL := LV_SQL || ' AND TRUNC(NB_RECEIPT_DATE) &gt;= ''' ||to_char(:NB_CNTRL.FROM_DATE, 'dd-MON-rrrr')||'''';</td></tr> 
</tbody> 
</table> 
</body></html> 
+1

私たちはxpathをあなたのために作成することができます –

+0

@shubham:私たちはXPathを持っています。問題はhtmlファイルをどのように開くかです。例えばxpathを渡してデータを抽出できるxmlリーダーがあります。今、sitiの質問はどのようにhtnlファイルを解析するか、そこに任意の読者ですか?ベストプラクティスは何ですか? – Amir

+1

まず第一に、HTMLとXMLはどちらも異なっています。はい、両方ともdomを持っていますが、それらは異なっています。セレンはHTMLから要素を読み取ることができますが、XMLからは読み取れません...ソースがHTMLの場合、 localhost:8080 –

答えて

1

ExtractValueは、Oracle形式であなたのために働く必要があり

私はOracleの形でのexperinceを持っていないが、それはのようにあるべき

/html/body/table//thead/tr[1]/th[6]/text() -> it will return -> "0015: IF :NB_CNTRL.FROM_DATE IS NOT NULL THEN" 

/html/body/table/tbody/tr[2]/td[6]/text() -> it will return -> "0016: LV_SQL := LV_SQL || ' AND TRUNC(NB_RECEIPT_DATE) >= ''' ||to_char(:NB_CNTRL.FROM_DATE, 'dd-MON-rrrr')||''''" 

: - - :

ExtractValue(Value(p),'/html/body/table//thead/tr[1]/th[6]/text()') as value 

OR

execute immediate 'alter session set events =''31156 trace name context forever, level 2'''; 

    l_xml := xmltype(l_clob); 

    execute immediate 'alter session set events =''31156 trace name context off'''; 

    select extractvalue(l_xml 
         , '/html/body/table//thead/tr[1]/th[6]/text()') 
    into l_value 
    from dual; 

    dbms_output.put_line(l_value); 

    end; 

出典: -

のXPathは次のようになります

XML Oracle: Extract specific attribute from multiple repeating child nodes

https://community.oracle.com/thread/2381518

さらに、HTMLベースのWebサイトはSeleniumでしかテストできません。 OracleアプリケーションがWebブラウザ経由でアクセス可能なHTMLベースのフロントエンドを公開している場合、Seleniumを使用してテストすることはできません。

ブラウザを使用してアクセスできるかどうか教えてください。はいの場合は、値を取得するjavaでスクリプトを作成します。

+0

あなたの貴重な答えをありがとう。 – Amir

+1

私はそれはあなたのために働く。 :) ... –

関連する問題