ホームページ > バックエンド開発 > PHPチュートリアル > PHP で XML を読み取るいくつかの方法

PHP で XML を読み取るいくつかの方法

WBOY
リリース: 2016-07-25 09:10:33
オリジナル
1412 人が閲覧しました
  1. <人間>
  2. <張英>
  3. <名前>張英
  4. <性別>男性< ;/性別>
  5. <古い>28
  6. <タンク>
  7. <名前>タンク
  8. <性別>男性
  9. <古い> 28
コードをコピー

1) DOMDocument が XML を読み取ります

  1. $doc = new DOMDocument();
  2. $doc->load('person.xml'); //xml ファイルを読み込みます
  3. $humans = $doc->getElementsByTagName_r ( "humans" ); //人間タグのオブジェクト配列を取得します
  4. foreach( $humans as $human )
  5. {
  6. $names = $human->getElementsByTagName_r( "name" );タグ名
  7. $name = $names->item(0)->nodeValue; // などのノードの値を取得します。
  8. $sexs = $human->getElementsByTagName_r( "セックス" );
  9. $sex = $sexs->item(0)->nodeValue;
  10. $olds = $human->getElementsByTagName_r( "old" );
  11. $old = $olds->item( 0)- >nodeValue;
  12. echo "$name - $sex - $oldn";
  13. }
  14. ?>
コードをコピー

2) simplexml は XML を読み取ります

  1. $xml_array=simplexml_load_file('person.xml'); //XMLのデータを配列オブジェクトに読み込みます
  2. foreach($xml_array as $tmp){
  3. echo $ tmp-> ;name."-".$tmp->sex."-".$tmp->old."
    ";
  4. }
  5. ?>
コードをコピー

3 ) phpを使用データを記憶するための正規表現

  1. $xml = "";
  2. $f = fopen('person.xml', 'r');
  3. while( $data = fread( $f, 4096 ) ) {
  4. $xml .= $data;
  5. }
  6. fclose( $f );
  7. // 上記のデータを読み取ります
  8. preg_match_all( "/(.*?)/s", $xml, $ human ); //最も外側のタグの内容と一致します
  9. foreach( $humans[1] as $k=>$human )
  10. {
  11. preg_match_all( "/(.*?)preg_match_all( "/(.*?)/", $human, $sex ); //性別を一致させる
  12. preg_match_all( "/(.*?)/", $human, $old ); // 年齢を一致
  13. }
  14. foreach($name[1] as $key=> $val ){
  15. echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."
    ;
  16. }
  17. ?>
コードをコピー
4) XMLデータを読み取るためのxmlreader

$reader = new XMLReader();
  • $reader->open('person.xml') //xml データを読み取ります
  • $i=1;
  • while ($ 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 ファイルを再度作成したくないため、私が作成したメソッドは依然としてタグ内の値を受け取ります。
    例を挙げて説明してください。

    xmlreader の設計の焦点は、データ内の name sex old の値を読み取ることですが、内容を読み取るのはさらに面倒です。 jquery の attr(”) に相当します。

    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート