検索
ホームページphp教程php手册phpのxml読み込みに関する機能の紹介

phpのxml読み込みに関する機能の紹介

Jun 13, 2016 pm 12:29 PM
phpsetxml1つ導入要素関数物体関連している解析する読む

オブジェクト 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 ポジション: アシスタント

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




/name>
45"> マネージャー



李思
/position>
🎜>
$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=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ソースファイル

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





Zhang Ying

28

/name> ;sex>Men

28


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( "/(.*?)/s", $xml, $humans ); // 一番外側のタグ内と一致
foreach の内容( $humans[1] as $k=>$human )
{
preg_match_all( "/(.*?)/", $ human, $name ); //名前の一致
preg_match_all( "/(.*?)/", $human, $sex ); //性別の一致
preg_match_all( "/ (.*?)/", $human, $old ); //年齢に一致
}
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(”); に相当します。
上記はあくまで個人的な意見ですので、皆様のお役に立てれば幸いです。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境