PHP は XML ファイルを操作します: 読み取り、表示
リリース: 2016-06-21 08:59:08
この例のphpファイルはxmlファイルの内容を読み込んで表示します
以下はphpファイルの内容です。phpファイルとslashdot.xmlを同じフォルダに置くだけです。
$open_tags = array(
'STORY ' => >=> '',
'作者'=> '
$close_tags = array( 'STORY'
=> 'ストーリー>' 、
'TITLE' =>
'
、 'URL'
=> '' 、'著者'
=> '著者> );
?> //以下はデータを抽出するために定義された関数です: // 処理開始タグの属性は参照しますto
// $attrs は多次元配列で、キー値は属性です。名前、値は属性の値です。
関数 startElement
($parser
,
$name
,
$attrs
=''
){
グローバル $open_tags, $ temp、$current_tag ; $current_tag = $name
; if ($format = $open_tags[$name
]) { switch($name<🎜) >){ case 'STORY'
: echo ' 新しいストーリー: ' ; ブレーク; デフォルト: ブレーク;}
}
}
// $current_tag は処理中のタグを示します。これは後でcharacterData 関数で使用します
/ /
// マークに遭遇すると、すべての一時変数をフラッシュし、次のマーク
'、
'TITLE' => ''、
'URL' => ''、
'著者'=> '
);
?>
//以下はデータを抽出するために定義された関数です:
// 開始タグの属性を処理します
// $attrs はキー値を持つ多次元配列が属性名で、その値が属性
関数 startElement($parser, $name, $attrs='') {
グローバル $open_tags, $temp, $current_tag
$current_tag = $name;
;
if ( $format = $open_tags[$name ]){
switch($name){
case 'STORY':
echo '新しいストーリー: '; ;
デフォルト:
Break;
}
}
}
// $current_tag が示すタグ処理中です。これは後でcharacterData関数で使用します。//
// マークに遭遇すると、すべての一時変数をフラッシュし、次のマークの操作を準備することがわかります
関数 endElement($parser, $name, $attrs =''){ グローバル
$close_tags、$temp 、$current_tag;if ($format = $close_tags[$name]){
switch($name){
case 'STORY':
return_page($temp);
$temp = ''; デフォルト:
ブレーク; ;
}
}
}
// この関数に渡されるのは要素間のデータです
//たとえば、Title Here の場合、$data は 'Title Here' と同じです
function characterData( $parser, $data){
グローバル
$current_tag、$temp、$catID switch(
; $current_tag
){ case
'TITLE'
: $temp
['タイトル'] = $data; > $current_tag
= ; case ' URL'
:
$temp[
'url'
] = $data; ケース '著者':
$temp['著者'] = $data
; $current_tag =
'' ; デフォルト: ブレーク } } ?>関数 return_page(){
グローバル $temp ;
echo 'o .$temp['url'].'">'.$temp['タイトル'].'
';
echo '作成者: '.$temp['作成者'].'
';
エコー '------ - ---------';
エコー '
';
}
// 解析内容
$xml_file = 'slashdot.xml';
// 文字セットを定義します。デフォルトは UTF- 8
$type = 'UTF-8'
// パーサーを作成します
$xml_parser = xml_parser_create( $type);
// 解析オプションを設定します
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); 🎜>
、
'UTF-8'); 🎜>/ / 要素が見つかったときに呼び出す関数を PHP に指示します // これらの関数は要素の属性も処理します xml_set_element_handler($xml_parser,
'startElement'
,'endElement'
); //文字データに対して呼び出す関数を PHP に指示しますxml_set_character_data_handler($xml_parser , 'characterData'
); (!( $fp
= fopen($xml_file, 'r'))) {
die("解析のために $xml_file ファイルを開けません!n");
//
while ($data = fread) をループしてファイル全体を解析します($fp, 4096)) { if (!(
) > $data = utf8_encode($data))) { echo
'ERROR'."n" } ; if (!
xml_parse($xml_parser, $data, feof($fp))) {
die(
sprintf ( "XML エラー: %dnn 行目 %s",
xml_error_string ( xml_get_error_code($xml_parser))、
xml_get_current_line_number ($xml_parser)));
} }
xml_parser_free ($xml_parser);
?>
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31