2016-10-14 23 views
0

HTMLタグを削除しようとしているバッチのテキストファイルがあります。各ファイルに保存したいテキストは、<TEXT></TEXT>の間です。これらのファイルの中には、文書の下半分に保存したいと思う<TEXT></TEXT>という2番目のインスタンスがあります。複数のHTMLタグの内部からテキストを抽出するにはどうすればよいですか?

HTML::Restrictは、第一に、関連するすべてのテキストを保存するための素晴らしい作品が、<TEXT></TEXT>の2番目のインスタンス間のテキストを保存していないようです。

私のコードは次のとおりです。私は、HTML内の任意のオプションを識別することはできません

$hr = HTML::Restrict->new() ; 
$processed = $hr->process($doc) ; 

::私は、テキストファイルの2番目の部分が保存されていることを確実にするために微調整することができ、モジュールを制限します。そのようなオプションが存在するのですか、またはこのタスクを実行するためのより良い方法がありますか?私はいくつかの正規表現を試しましたが、今まで私は同様の問題に遭遇しました。

以下は元のファイルです。結果は、最初のインスタンスが<TEXT>(「米国」の直上)で、最初のインスタンスが</TEXT>で、3番目のグレーのボックスが下から出力されます。

-----BEGIN PRIVACY-ENHANCED MESSAGE----- 
Proc-Type: 2001,MIC-CLEAR 
Originator-Name: [email protected] 
Originator-Key-Asymmetric: 
MFgwCgYEVQgBAQICAf8DSgAwRwJAW2sNKK9AVtBzYZmr6aGjlWyK3XmZv3dTINen 
TWSM7vrzLADbmYQaionwg5sDW3P6oaM5D3tdezXMm7z1T+B+twIDAQAB 
MIC-Info: RSA-MD5,RSA, 
VlTZCBM7TRNLONv/I0OgPsjKD23uR2Zn9/jJ4XrBQY8DlPxfH2+iX+W5TZjhZEQY 
shGRyuAw29phAaxb1IPhgQ== 

<SEC-DOCUMENT>0001157523-06-001366.txt : 20060209 
<SEC-HEADER>0001157523-06-001366.hdr.sgml : 20060209 
<ACCEPTANCE-DATETIME>20060209161745 
ACCESSION NUMBER:  0001157523-06-001366 
CONFORMED SUBMISSION TYPE: 8-K 
PUBLIC DOCUMENT COUNT:  2 
CONFORMED PERIOD OF REPORT: 20060209 
ITEM INFORMATION:  Results of Operations and Financial Condition 
ITEM INFORMATION:  Financial Statements and Exhibits 
FILED AS OF DATE:  20060209 
DATE AS OF CHANGE:  20060209 

FILER: 

    COMPANY DATA: 
     COMPANY CONFORMED NAME:   ANALOG DEVICES INC 
     CENTRAL INDEX KEY:   0000006281 
     STANDARD INDUSTRIAL CLASSIFICATION: SEMICONDUCTORS & RELATED DEVICES [3674] 
     IRS NUMBER:    042348234 
     STATE OF INCORPORATION:   MA 
     FISCAL YEAR END:   1205 

    FILING VALUES: 
     FORM TYPE:  8-K 
     SEC ACT:  1934 Act" 
     SEC FILE NUMBER: 001-07819 
     FILM NUMBER:  06593279 

    BUSINESS ADDRESS: 
     STREET 1:  ONE TECHNOLOGY WAY 
     CITY:   NORWOOD 
     STATE:   MA 
     ZIP:   02062 
     BUSINESS PHONE:  7813294700 

    MAIL ADDRESS: 
     STREET 1:  ONE TECHNOLOGY WAY 
     CITY:   NORWOOD 
     STATE:   MA 
     ZIP:   02062 
</SEC-HEADER> 
<DOCUMENT> 
<TYPE>8-K 
<SEQUENCE>1 
<FILENAME>a5077045.txt 
<DESCRIPTION>ANALOG DEVICES, INC., 8-K 
<TEXT> 

            UNITED STATES 
         SECURITIES AND EXCHANGE COMMISSION 
          Washington, D.C. 20549 

            FORM 8-K 

           CURRENT REPORT 
    Pursuant to Section 13 OR 15(d) of The Securities Exchange Act of 1934 


Date of Report (Date of earliest event reported): February 9, 2006 

           Analog Devices, Inc. 
- -------------------------------------------------------------------------------- 
      (Exact name of registrant as specified in its charter) 

     Massachusetts    1-7819     04-2348234 
- -------------------------------------------------------------------------------- 
(State or other juris-   (Commission    (IRS Employer 
diction of incorporation  File Number)   Identification No.) 


    One Technology Way, Norwood, MA       02062 
- -------------------------------------------------------------------------------- 
(Address of principal executive offices)     (Zip Code) 


Registrant's telephone number, including area code: (781) 329-4700 


- -------------------------------------------------------------------------------- 
      (Former name or former address, if changed since last report) 


Check the appropriate box below if the Form 8-K filing is intended to 
simultaneously satisfy the filing obligation of the registrant under any of the 
following provisions (see General Instruction A.2. below): 

|_| Written communications pursuant to Rule 425 under the Securities Act (17 
    CFR 230.425) 

|_| Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 
    240.14a-12) 

|_| Pre-commencement communications pursuant to Rule 14d-2(b) under the 
    Exchange Act (17 CFR 240.14d-2(b)) 

|_| Pre-commencement communications pursuant to Rule 13e-4(c) under the 
    Exchange Act (17 CFR 240.13e-4(c)) 


<PAGE> 


Item 2.02. Results of Operations and Financial Condition 

    On February 9, 2006, Analog Devices, Inc. announced its financial results 
for the quarter ended January 28, 2006. The full text of the press release 
issued in connection with the announcement is attached as Exhibit 99.1 to this 
Current Report on Form 8-K. 

    The information in this Form 8-K and the exhibit attached hereto shall not 
be deemed "filed" for purposes of Section 18 of the Securities Exchange Act of 
1934 (the "Exchange Act") or otherwise subject to the liabilities of that 
section, nor shall it be deemed incorporated by reference in any filing under 
the Securities Act of 1933 or the Exchange Act, except as expressly set forth by 
specific reference in such a filing. 



            EXHIBIT INDEX 

Exhibit No.    Description 
- -----------    ----------- 

99.1      Press release dated February 9, 2006 issued by Analog 
          Devices, Inc. 
</TEXT> 
</DOCUMENT> 
<DOCUMENT> 
<TYPE>EX-99.1 
<SEQUENCE>2 
<FILENAME>a5077045ex99_1.txt 
<DESCRIPTION>EXHIBIT 99.1 
<TEXT> 
                    Exhibit 99.1 


        Analog Devices Reports Results for the 
         First Quarter of Fiscal Year 2006 

    NORWOOD, Mass.--(BUSINESS WIRE)--Feb. 9, 2006--Analog Devices, 
Inc. (NYSE: ADI): 

    -- Board of Directors declares dividend of $0.12 per share for 
     the quarter. 

    -- Financial results for the first quarter and guidance for the 
     second quarter to be discussed on conference call today at 
     4:30 pm. 

    Analog Devices, Inc. (NYSE: ADI), a global leader in 
high-performance semiconductors for signal processing applications, 
today announced revenue of $621.3 million for the first quarter of 
fiscal 2006, an increase of 7% compared to the same period one year 
ago and approximately even with the immediately prior quarter's $622.1 
million in revenue. 



    CONTACT: Analog Devices, Inc. 
      Maria Tagliaferro,781-461-3282 
      Director of Corporate Communications, 
      781-461-3491 (fax) 
      [email protected] 
</TEXT> 
</DOCUMENT> 
</SEC-DOCUMENT> 
-----END PRIVACY-ENHANCED MESSAGE----- 
+3

質問を入力して入力してください。 – simbabque

+0

@simbabqueでも、元のファイルを質問に貼り付けようとすると、サンプルHTMLタグ "<>"が投稿のコンテンツをブロックしないようにするにはどうすればよいですか? – Rick

+0

@Rickあなたのコードを貼り付けて強調表示し、エディタで '{}'ボタンをクリックします(またはCtrl + Kを押します)。それはコードブロックとして扱われます(既に一度使用しています)。 [formatting help](http://stackoverflow.com/help/formatting)も参照してください。また、[edit]ボタンをクリックすると、Markdownの生の様子を見ることができます。 – ThisSuitIsBlackNot

答えて

2

、あなたがで投げ、様々ながらくたではオフにスローされていないパーサをしたいですそれ。

以下の例では、便宜上、上記のサンプルテキストをスクリプトの__DATA__セクションに置きました。現実の世界では、ファイルを適切なエンコーディングで開く必要があります。

#!/usr/bin/env perl 

use strict; 
use warnings; 

use HTML::TokeParser::Simple; 

my $parser = HTML::TokeParser::Simple->new(handle => \*DATA); 

my @text; 

while (my $token = $parser->get_token) { 
    if ($token->is_start_tag('text')) { 
     push @text, $parser->get_text('/text'); 
    } 
} 

print "[[[>>>$_<<<]]]\n\n" for @text; 

__DATA__ 
+0

"定義されていない値に対して" get_token "メソッドを呼び出すことができません"というエラーメッセージが表示されます。私は、$ text変数にクリーニングしたい生データがあることを確認しました。どのような問題が起こっているのでしょうか? – Rick

+0

これは '$ parser'の構築が失敗したことを意味します。ファイルの内容をスカラーに入れる場合、 'my $ parser = HTML :: TokeParser :: Simple-> new(string => $ html_string);'を参照してください。[docs](https://metacpan.org/ pod/HTML :: TokeParser :: Simple#new-source_type-source)を参照してください。 –

+1

はい、元のコードが、スカラーではなくファイルを参照するときに動作することがわかります。私の問題は今解決されたと思う。ありがとう! – Rick

1

これはあなたのすべての一致を(自分自身をテストした)与える必要があります:あなたは本当にHTMLドキュメントを持っていないので

my @text = $doc =~ /<TEXT>(.*?)<\/TEXT>/gs 
+0

私はこれを私のために働かせることができないので、私はここでエラーをしているに違いありません。少なくとも、@ textの内容を印刷しようとすると、何も印刷されません。 – Rick

+0

@ text = $ doc =〜/ (。*?)<\/TEXT>/gs; foreach(@テキスト){ "$ _ \ n"; } – Rick

+0

その前に '@ text'を宣言しましたか?そうでなければ、 'my @text = ...'が必要です。もしそうなら、あなたはHTMLの内容が '$ doc'であることを確かめますか? –

関連する問題