[PHP-users 27165] Re: XMLパーサにおけるシングルクォート読み込みについて

okuyama@workgroup okuyama @ workgroup.jp
2005年 10月 7日 (金) 16:17:24 JST


原因は、別の部分にあるかと思われます。

表示の際に、' (シングルクォート)でくくられている部分に、該当データが
挿入されているものと思われます。


このソース内で対応するのであれば、
「//文字データハンドラを設定する」関数内で、
メタ文字をクォートする処理を追加すればOKではないでしょうか。


.    ・ . +  : ゜.  ‥   ゜. .
 ‥   ゜. .  .  ・.    ・ . +
  /  +   ゜.     ・ . +  :
★               from: Atsuji Okuyama
  彡彡ミ
 )∂∂b        mail:  okuyama @ workgroup.jp
 ( ー  人__     tel: 050-3599-1875
   ̄/)/   |     tel: 050-7567-2016
   |` ̄    "\  au : 090-3545-9553


> -----Original Message-----
> From: php-users-bounces @ php.gr.jp
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of Yosuke Uchida
> Sent: Friday, October 07, 2005 3:47 PM
> To: php-users @ php.gr.jp
> Subject: [PHP-users 27164] XMLパーサにおけるシングルクォート読み込みについ
て
>
> 初めまして
> 内田と申します
>
> PHP Ver.4.3.10にてXMLパーサを作成し、
> RDFを読み込む処理を作成しました。
>
> 各項目申し分無く読み込んでいるのですが、
> 以下の現象が起きます。
>
> [読み込み対象] <title>We're Goin Down</title>
> [読み込み後  ] re Goin Down
>
> シングルクォートが引用符として捉えられ、
> 性格にデータが読み込めません。
>
> 半角英字しか扱わない予定なので、
> XMLパーサはUS-ASCIIで作成し、エンコーディング等行っておりません。
>
> 解決法があればご教授頂けますでしょうか。
>
> 以上宜しくお願い致します。
>
> 参考        -----------------------------------
>
>     function characters($parser, $text){
>         global $tmp;
>         //バッファにテキストを保存
>         $tmp = $text;
>     }
>
>     //要素の開始
>     function startElement($parser, $name, $attrib){
>        global $g_intCount;
>        if($name == "item"){
>           $g_intCount = $g_intCount+1;
>        }
>     }
>
>     //要素の終了
>     function endElement($parser, $name){
>         global $tmp,$arrTitle,$g_intCount;
>         switch($name){
>             case 'title':
>                 $arrTitle[$g_intCount] = $tmp;
>                 break;
>
>             default :
>                 break;
>         }
>     }
>
>     //XMLパーサー作成("US-ASCII")
>     $xml_parser = xml_parser_create("US-ASCII");
>
>     // 大文字変換を行わない
>     xml_parser_set_option($xml_parser,
> XML_OPTION_CASE_FOLDING, false);
>
>     //start および end 要素のハンドラを設定する
>     xml_set_element_handler($xml_parser, "startElement",
> "endElement");
>
>     //文字データハンドラを設定する
>     xml_set_character_data_handler($xml_parser, "characters");
>
>
>     if (!($fp = fopen($file, "r"))) {
>         die("XMLファイルを開けません。");
>     }
>
>     while ($data = fread($fp,8192)) {
>
>         //XMLパース処理
>         if (!xml_parse($xml_parser,$data, feof($fp))) {
>
>             //パースエラー処理
>             die(sprintf("XML error: %s at line %d",
>                 xml_error_string(xml_get_error_code($xml_parser)),
>                 xml_get_current_line_number($xml_parser)));
>
>         }
>     }
>
>     //XMLパーサの開放
>     xml_parser_free($xml_parser);
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
>



PHP-users メーリングリストの案内