1

HTML ファイルがあり、それが使用するすべてのリソースのリストを生成する必要があります: *.htm、*.html、*.css、*.js、*.jpg

grep や sed などの多くのオプションを試しましたが、あまり成功しませんでした。また、JAVAでそれを行う方法もわかりません。

これはファイルの内容の例です:

--------------------------------


>   <link rel="StyleSheet" href="css/webworks.css" type="text/css"
> media="all" />
>     <script type="text/javascript" language="JavaScript1.2"   src="wwhdata/common        /context.js">
>     /script>
>     <a class="WebWorks_Breadcrumb_Link" href="Page1.htm#1110364">Job Status</a> &gt;  Jobs tatus</div>
>     <div class="Indented"><a name="1115395">The <img class="Default"  src="images/Pic.2.jpg" width="26" height="29" style="display: inline;
 > float: none; left: 0.0; top: 0.0;" alt="" /> icon indicates that the
 > job is recurring. Hover the mouse over the icon to display the
     > schedule.</a></div>
 >     <div class="Body_Help_only"><a href="javascript:WWHClickedPopup('HelpSR2',   'Page4.htm#1110375', '');"
 > title="fsafsa" name="1118038">abcde</a></div>
 >     <div class="Body_Help_only"><a href="javascript:WWHClickedPopup('HelpSR2',   'Page2.htm#1110547', '');"
  > title="fsafsa" name="1118063">fsafsa</a></div>
  >     <div class="Body_Help_only"><a href="javascript:WWHClickedPopup('HelpSR2', 'Page3.htm#1110472', '');"
 > title="fsafasb" name="1118082">fsafsa</a></div>

出力は次のようになります。

-----------------
css/webworks.css
wwhdata/common/context.js
Page1.htm
images/Pic.2.jpg
Page4.htm
Page2.htm
Page3.htm
4

2 に答える 2

1

JSOUPを使用する

jsoup は、実際の HTML を操作するための Java ライブラリです。DOM、CSS、および jquery に似たメソッドを最大限に活用して、データを抽出および操作するための非常に便利な API を提供します。

于 2012-06-20T15:57:45.160 に答える
0

以下は、ある程度の方法を提供するはずです。

% sed -n -E 's/.*(href|src)="([^"]*).*/\2/p' input.html

この-n手段は、デフォルトでは行を印刷しません-E手段は拡張正規表現を使用します (したがって、縦棒を交互に使用できます)。置換の末尾は、置換が成功したすべての行を出力することpを意味します。一緒に、これは または を含むすべての行を見つけ、行全体を または までの間のもので置き換え、結果を出力します。href=src="..."#

入力すると、次が生成されます。

css/webworks.css
wwhdata/common/context.js
Page1.htm
images/Pic.2.jpg
javascript:WWHClickedPopup('HelpSR2',   'Page4.htm
javascript:WWHClickedPopup('HelpSR2',   'Page2.htm
javascript:WWHClickedPopup('HelpSR2', 'Page3.htm

この単純なバージョンの制限:

  • 1 行に複数の href または src がある場合は機能しません。
  • Javascript 引数の内容を抽出できません。
  • ファイル名を区切るのでは"..."なく、入力が使用することを前提としています。'...'

これらのそれぞれは、sed スクリプトへの適切な追加によっておそらく改善される可能性がありますが、2 つ目は、別の sed スクリプトを介して出力を送信するか、または...

% cat /tmp/t.sed
s/.*(href|src)="([^#"]*).*/\2/
s/javascript.*'//
t x
b
:x
p
% sed -n -E -f /tmp/t.sed /tmp/so.txt
css/webworks.css
wwhdata/common/context.js
Page1.htm
images/Pic.2.jpg
Page4.htm
Page2.htm
Page3.htm
%

ラストはちょっと特別!詳細を解決するために、あなたとマンページを残します。

于 2012-06-21T10:33:42.557 に答える