ホームページ  >  記事  >  バックエンド開発  >  PHPのXML読み込みに関する機能の紹介 1_PHPチュートリアル

PHPのXML読み込みに関する機能の紹介 1_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:52:22884ブラウズ

オブジェクト 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() 表記ステートメントの外観
デフォルト xml_set_default_handler() ハンドラー関数を指定しないその他のイベント

パーサーを使用して読み取る小さな例を次に示します。関数 XML データ:

xml ファイルのコードは次のとおりです:

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

引用: ---------------------- ------ -------------------------------------------- ------ --
名前: Zhang San ポジション: マネージャー
名前: Li Si ポジション: アシスタント

コードをコピーします コードは次のとおりです:


<従業員>
<従業員>
張三
マネージャー

<従業員&lt;



コードをコピー

コードは次のとおりです:


$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);// パーサーを閉じて解放します

$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs) // 開始タグイベントの関数
{
global $name,$position
if($element_name== "NAME")
{
$name=true;
$position=false;
echo "名前:"
if($element_name=="POSITION")
$position=true; ;
echo "Position:";
}
}

function CharacterData($parser_instance, $xml_data) //データを読み取るときの関数
{
global $name,$position)
echo $xml_data. "
";
if( $name)
echo $xml_data."
";
}

function endElement($parser_instance, $element_name) //タグイベントを終了する関数
{
global $名前,$位置;
$名前=false;

?>

PHPのxml読み込み方法の紹介

まず、xmlとは何か、xmlの用途とは何ですか
XML(Extensible Markup Language)とは、HTMLと同じく拡張可能なマークアップ言語であり、標準規格であるSGML(Standard Generalized Markup Language)です。ユニバーサルマークアップ言語)。 XML は、インターネット環境におけるクロスプラットフォームのコンテンツ依存テクノロジであり、現在、構造化ドキュメント情報を処理するための強力なツールです。拡張マークアップ言語 XML は、一連の単純なタグを使用してデータを記述する単純なデータ ストレージ言語です。これらのタグは、バイナリ データよりも多くのスペースを必要としますが、XML は非常にシンプルで習得が簡単です。そして使用します。
XML には、データの保存、データの交換、さまざまな種類のアプリケーション ソフトウェアのプロンプト データなど、さまざまな用途があります。
二番目、php で XML を読む方法

gt;/old> gt; <タンク <性別>

1)D OMDocument Read xml



コードをコピー

コードは次のとおりです:


$doc = new DOMDocument(); 'person.xml'); // XML ファイルを読み込みます
$humans = $doc->getElementsByTagName( "humans" ); // 人間タグのオブジェクト配列を取得します
foreach( $humans as $human )
{
$ names = $human->getElementsByTagName( "name" ); //名前のラベルのオブジェクト配列を取得します
$name = $names->item(0)->nodeValue; //ノードの値を取得します例: /name>
$sexs = $human->getElementsByTagName( "sex" );
$olds = $human->getElementsByTagName( "old" ); $old = $olds->item(0)->nodeValue; } ?>
2) simplexml は xml を読み込みます



コードをコピー

コードは次のとおりです:


$xml_array=simplexml_load_file('person.xml'); //XML のデータを配列オブジェクト
foreach($xml_array as $tmp){
echo $tmp->name."-".$tmp->sex."-".$tmp->old."
";
}
?>


3) PHP 正規表現を使用してデータを記憶します


コードをコピーします コードは次のとおりです。 = fopen('person.xml', 'r'); while( $data = fread( $f, 4096 ) ) { $xml .= $data;
fclose( $f );上記のデータ
preg_match_all( "/(.*?) /s", $xml, $humans ); // 一番外側のタグの内容と一致します
foreach( $humans[1] as $k=>$human )
{
preg_match_all( "/ (.*?)/", $human, $name ); (.*?)/" , $human, $sex ); //性別を一致させる
preg_match_all( "/(.*?)/", $human, $old ); //年齢を一致させる
}
foreach($name[1] as $key=>$val){
echo $val." - ".$sex[$key][1]. " - ".$old[$key][1]. "
?>

コードをコピーします。" :
$reader = new XMLReader() ;
$reader->open('person.xml') //xml データを読み取ります
$i=1; ;read()) { //読み取るかどうか
if ($ Reader->nodeType == XMLReader::TEXT) { //ノードタイプを決定する
if($i%3){
echo $reader-> value; // ノードの値を取得します
}else{
echo $reader ->value."

$i++}

;
三、まとめ
xmlを読み取る方法はたくさんありますが、ここではいくつか紹介します。上記の 4 つのメソッドはすべて、タグ内のデータを読み取ることができます (Zhang Ying)。ただし、最初の 3 つのメソッドの XML 読み取り機能の設計上​​の焦点は、タグ内の値を読み取ることです。 jquery の text() メソッドは、xmlreader とは異なります。その焦点は、タグ内の値を読み取ることではなく、タグの属性を読み取り、送信されるすべてのデータを属性に入れることにあります (ただし、上で述べたように、 XML ファイルが指定されており、XML ファイルを再度作成したくないため、私が作成したメソッドは依然としてタグ内の値を受け取ります。
例を挙げて説明します。

xmlreader の設計の焦点は、name sex old の値を読み取ることです。データがあり、その内容を読み取るのはさらに面倒です。 jquery の attr(”); に相当します。
上記はあくまで個人的な意見ですので、皆様のお役に立てれば幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318970.html技術記事オブジェクト XML解析関数記述要素 xml_set_element_handler() 要素の開始および終了文字データ xml_set_character_data_handler() 文字データの開始 外部エンティティ
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:間違ったphp timeの解決策_PHPチュートリアル次の記事:間違ったphp timeの解決策_PHPチュートリアル

関連記事

続きを見る