2012-02-20 32 views
-1

のリストにリスト項目のマークアップタグを追加するプログラムをしたい:私は、HTMLファイルを書いていると私は何のために望んでいることは、このようなものである私は言葉

入力:

a 
aa 
b 
bb 

出力:

<li>a</li> 
<li>aa</li> 
<li>b</li> 
<li>bb</li> 

だから私は右、Pythonでそれを試してみてください。

file = open('/Users/Shannon/Desktop/add_tags.txt') 


while 1: 
    line = file.readline() 
    if not line: 
     break 
    else: 
     print "<li>" + line + "</li> \n" 

そして、結果はそうのような文字化け混乱です:

<html><body> 

<?php 
$fin = fopen('add_tags.txt', 'r'); 

while(!feof($fin)) 
    { 
     $input_string = fgets($fin); 
     $output_string = "<li>".$input_string."</li>"; 
     echo $output_string; 
    } 

?> 

しかし、李タグは当然、箇条書きとしてレンダリング:

</li> e sleep patterns when possibleresult in positive outcomes 

それから私は、PHPでそれを試してみてください。そこで、ブラケットをエスケープするためにバックスラッシュを追加しましたが、それは効果がないようです。何を - それから私はちょうど起こったかを見るために「×」する「(lessthan)李(演算子:GreaterThan)」に変更しました。まだ箇条書きのリスト。何も思いつきません。何かが私の問題を解決しないjavaに切り替えることを私に告げる。何か案は?

+0

あなたはそれが '

  • 'や '<リー>&LT /李>'を印刷しますか?実際のHTMLまたはタグが実際にどのようなものになるかを視聴者が実際に見ることができるものか? – jprofitt

    +1

    私は実際に両方の特許請求の範囲のいずれかが真であると信じることができません。あなたが投稿したpythonは '

  • ...
  • 'ブロックの外にテキストを印刷せず、 'x ... x'を印刷するとPHPは'
  • ...
  • 'を出力しません。あなたは正しいファイルを見ていますか? – CodeCaster

    答えて

    2

    ここでは、2つのラインでのpythonのソリューションです:

    for line in open('tmp.txt'): 
        print '<li>' + line.rstrip() +'</li>' 
    

    そして、2つのコメント:

    1. '行のためで...' スタイルが(非常にクリーンかつ簡単ですが、 open(filename)はPythonジェネレータを返し、一度に1行を返します)。

    2. 行の末尾に「\ n」の末尾を取り除くには、rstrip()を使用しました。これはまた、行末で余分なスペースを取り除きます(HTMLには何の違いもありません)。

    関連する問題