オブジェクト XML 解析関数の説明
要素 xml_set_element_handler() 要素の先頭と末尾
文字データ xml_set_character_data_handler() 文字データの先頭
外部エンティティ xml_set_external_entity_ref_handler() 外部エンティティの出現
未解析の外部エンティティxml_set_unparsed_entity_decl_ handler() 未解決の外部エンティティの発生
処理命令の発生 xml_set_processing_instruction_handler() 処理命令の発生
表記法宣言の発生 xml_set_notation_decl_handler() 表記法宣言の発生
Default xml_set_default_handler() その他ハンドラー関数を指定しないイベント
次に、パーサー関数を使用して XML データを読み取る簡単な例を示します:
XML ファイルのコードは次のとおりです:
このプログラムの結果は次のとおりです:
引用:--------------------------------- ----------------- ------------------------------
名前: Zhang San ポジション: マネージャー
名前: Li Si ポジション: アシスタント
コードをコピー コードは次のとおりです:
<従業員>
<役職> 45"> マネージャー
< Position age="45">/position>
$parser = xml_parser_create();パーサーエディターを作成します
xml_set_element_handler($parser, "startElement", "endElement"); //タグがトリガーされたときに設定します 対応する関数はそれぞれ startElement と endElenment です
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=true;
$position=false;
echo "名前:" }
if($element_name= ="POSITION")
{$name=false;
$position=true;
echo "位置: ";
}
}
関数characterData($parser_instance) , $xml_data) //データ読み込み時の関数
{
global $name,$position;
if($position)
echo $xml_data."
"; ($name)
echo $xml_data."
";
}
function endElement($parser_instance, $element_name) //タグイベントを終了する関数
{
グローバル $name,$position;
$position=false;
?
PHP の XML 読み込み方法の紹介
1.xml とは何か、xml の用途は何ですか
XML (Extensible Markup Language) は拡張可能なマークアップ言語です。 . HTML と同様に、SGML (Standard Generalized Markup Language、標準汎用マークアップ言語) です。 XML は、インターネット環境におけるクロスプラットフォームのコンテンツ依存テクノロジであり、現在、構造化ドキュメント情報を処理するための強力なツールです。拡張マークアップ言語 XML は、一連の単純なタグを使用してデータを記述する単純なデータ ストレージ言語です。これらのタグは、バイナリ データよりも多くのスペースを必要としますが、XML は非常にシンプルで習得が簡単です。そして使用します。
XML には、データの保存、データの交換、さまざまな種類のアプリケーション ソフトウェアのプロンプト データなど、さまざまな用途があります。
2番目、phpでxmlを読み取る方法
XMLソースファイル
コードをコピーします コードは次のとおりです。
<人間>
/name> ;sex>Men
1) DOMDocument は XML を読み取ります。
コードは次のとおりです。 $doc = new DOMDocument();
$doc->load('person.xml'); //xml ファイルを読み込みます
$humans = $doc->getElementsByTagName( "humans" ); //人間タグのオブジェクト配列を取得します>foreach( $humans as $human )
{
$names = $human->getElementsByTagName( "name" ); // タグ名のオブジェクト配列を取得します
$name = $names-> ;item(0)->nodeValue; //
$sexs = $human->
などのノードの値を取得します。 $sex = $sexs->item(0)->nodeValue;
$olds = $human->getElementsByTagName( "old" ); ->nodeValue;
echo "$name - $sex - $oldn"
}
?>
; 2) simplexml 読み取り XML
$xml_array=simplexml_load_file('person.xml' ); // XML のデータを配列オブジェクトに読み込みます foreach($xml_array as $tmp){
echo $tmp->name."-".$tmp->sex. >old."}
?>
3) PHP 正規表現を使用してデータを記憶します
$xml = "" $f = fopen( 'person.xml'; , 'r');
while( $data = fread( $f, 4096 ) ) {$xml .= $data;
fclose( $f ) ; /上記のデータを読み取ります
preg_match_all( "/
foreach の内容( $humans[1] as $k=>$human )
{
preg_match_all( "/
preg_match_all( "/
preg_match_all( "/
}
foreach($name[1] as $key =>$val){
echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."
}
?" ;
4)xml データを読み取るための xmlreader
コードをコピー
$reader = new XMLReader(); $reader->open('person.xml'); //xml データを読み取ります$ i=1; ($reader->read()) { //読み取るかどうかif ($reader->nodeType == XMLReader::TEXT) { //ノードのタイプを決定します
if($i%3 ){echo $reader->value; // ノードの値を取得します
}else{
echo $reader->value."
}
$i ;
}
}
?>
3. 概要
xml を読み取る方法はたくさんありますが、ここではいくつかを紹介します。上記の 4 つのメソッドはすべて、タグ内のデータを読み取ることができます (Zhang Ying)。ただし、最初の 3 つのメソッドの XML 読み取り機能の設計上の焦点は、タグ内の値を読み取ることです。 jquery の text() メソッドは、xmlreader とは異なります。その焦点は、タグ内の値を読み取ることではなく、タグの属性を読み取り、送信されるすべてのデータを属性に入れることにあります (ただし、上で述べたように、 XML ファイルが指定されており、XML ファイルを再度作成したくないため、私が作成したメソッドは依然としてタグ内の値を受け取ります。
例を挙げて説明します。
名前の性別と読み方の値内容はもっと面倒です。 jquery の attr(”); に相当します。
上記はあくまで個人的な意見ですので、皆様のお役に立てれば幸いです。