[転送] PHPがXMLを読み込む

WBOY
WBOYオリジナル
2016-06-23 14:32:00835ブラウズ

http://blog.chinaunix.net/u/16928/showart_516200.html
php は XML を読み取ります

parser は、XML を処理するために php に組み込まれたパーサーです。作品は3つから構成されており、イベント: 開始タグ、読み取りデータ、終了タグ。

つまり、XML を処理するときに、開始タグ、データ、および終了タグが検出されるたびに、関数は対応するアクションを実行して XML データの変換を完了します。

PHP での XML 読み取り関連関数の紹介:

Quote:

--------------------------------- --------------------------------------------------

オブジェクト XML 解析関数の説明

要素 xml_set_element_handler() 要素の先頭と末尾

文字データ xml_set_character_data_handler() 文字データの先頭
外部エンティティ xml_set_external_entity_ref_handler() 外部エンティティの出現
未解析の外部エンティティ xml_set_unparsed_entity_de cl_hand ler() 未解決の外部エンティティ
処理命令の発生 xml_set_processing_instruction_handler() 処理命令の発生
表記法宣言の発生 xml_set_notation_decl_handler() 表記法宣言の発生
デフォルト xml_set_default_handler() ハンドラ関数を指定しないその他のイベント

----- --------------------- ---------------------------- --------------------- ----------------

パーサーの使用例を少し挙げてみましょうXML データを読み取る関数:

$parser = xml_parser_create(); // パーサーエディターを作成します
xml_set_element_handler($parser, "startElement", "endElement") / /タグがトリガーされたときに対応する関数を設定します。 startElement と endElenment はそれぞれ次のとおりです

xml_set_character_data_handler( $parser, "characterData");// データを読み取るときに対応する関数を設定します

$xml_file="1.xml" ;// 読み取る xml ファイルを指定します。url

$filehandler = fopen($ xml_file, "r");// ファイルを開きます





while ($data = fread($filehandler) , 4096))
{
xml_parse($parser, $data, feof($filehandler));
} //毎回の処理のために 4096 バイトを取り出します


fclose($filehandler);
xml_parser_free($parser); //パーサーを閉じて解放します parser



$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs) // 開始タグイベントの関数

{
global $name ,$position;
if($element_name=="NAME")
{
$name=true ;
$position=false;
echo "Name:";
}
if($element_name=="POSITION")
{$name=false;
$position=true;
echo "Position:";
}
}

function CharacterData($parser_instance, $xml_data) //データ読み込み時の関数

{
global $name,$position ;
if($position)
echo $xml_data."
";
if($name)
echo $xml_data."
";
}

function endElement($parser_instance, $element_name)

//タグイベントを終了する関数
{

$name = false;

$ posity = false
} & gt;

& & lt;? xml バージョン = "1.0"?
& lt;従業員>

マネージャー

李思

アシスタント



このプログラムの結果は次のとおりです:

引用:
----------------------------------- ----------- ----------------------------------

名前: 張San ポジション: マネージャー
名前: Li Si ポジション: アシスタント

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。