68user's page 掲示板

Prev< No. 2971〜2973> Next  [最新発言に戻る] [過去ログ一覧]
No. 2971 # ふくし [E-mail] 2002/12/05 (木) 20:32:07
補足です。
この tag というのは全部同じタグです。
ただオープンタグにかかれている a, b, ... という
アトリビュートが全部違います。

No. 2972 # ふくし [E-mail] 2002/12/05 (木) 23:16:22
さらに補足。(俺って説明下手だな、、;;;
ファイルには <tag> 以外のタグも存在します。
<aaa ???>〜</aaa>、<bbb ???>〜</bbb> などです。
その中で下の処理の対象になるのが <tag> だけということです。
<tag ???>〜</tag> の中に <xxx ???>〜</xxx> がある場合は、
それも抜いて書き出します。
問題の定義もなかなか奥が深い。

No. 2973 # 68user 2002/12/06 (金) 00:21:32
>>2969 kiki
シェルって何をしているか知っていますか? 簡単に言うと、ユーザが
入力した文字列を解析し、execve(2) を実行することです。

シェルのソースをいじっていいのならば、execve(2) を発行している
部分を探して、そこで su を実行しようとしているかどうかのチェックを
行えばよいのでは、という話です。

>>2970 ふくし
入力が XML なら、
    http://member.nifty.ne.jp/hippo2000/perltips/xml/dom.htm#XML_DOM_NODE
の removeChild で一発なような気がします。

XML でないなら構文解析してスタックに積んで…といきたいところですが、
僕は軟弱なので
    - s|<tag .*?>.*?</tag>||
    - 削除したのが足りなかった
            (例えば <tag a>in1<tag b>in2<tag c>in3</tag> しか取れなかった)
        なら、追加であと 2個の </tag> をするため s|.*?</tag>.*?</tag>|| とする。
とします。

Prev< No. 2971〜2973> Next  [最新発言に戻る] [過去ログ一覧]