PHP_PHP チュートリアルを使用した XML DOM の読み取りと書き込みのコード例
Jul 21, 2016 pm 02:54 PM// DOM を使用して XML を読み取る
$doc = new DOMDocument()
$doc->load(‘test.xml’);
$books = $doc->getElementsByTagName(“本”);
foreach( $books as $book ){$authors = $book->getElementsByTagName(“author”);
$author = $authors->item(0)->nodeValue 属性は次のとおりです。ノードの値を設定または返すノードのタイプに従って決定されます。
$publisher = $publishers->item(0)->nodeValue;
$titles = $book->getElementsByTagName( ”title” );
エコー「タイトル: $title <br> 著者: $author <br> 出版社: $publisher<br><hr><br>」
/*
book ノードのループで、スクリプトは getElementsByName メソッドを使用して、著者、発行者、およびタイトル タグのノード値を取得します。 nodeValue はノード内のテキストです。次に、スクリプトはこれらの値を表示します。
*/
// SAX パーサーで XML を読み取る
$g_books = 配列();
$g_elem = null;
global $g_books, $g_elem;
if ( $name == 'BOOK' ) $g_books []= array(); }
関数 endElement( $parser, $name ){
function textData( $parser, $text ){
global $g_books, $g_elem;
if ( $g_elem == '作者' || $g_elem == '出版社' || $g_elem == 'TITLE' ){
$g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text;
$parser = xml_parser_create();
xml_set_character_data_handler( $parser, ”textData” );
$f = fopen( 'test.xml', 'r' );
while( $data = fread( $f, 4096 ) ){
xml_parse( $parser, $data );
foreach( $g_books as $book ){
echo $book['TITLE']." - ".$book['AUTHOR']." - ";
echo $book['PUBLISHER']."n";
}
/*
スクリプトは最初に、メモリ内のすべての書籍と書籍情報を保持する g_books 配列を設定します。また、g_elem 変数は、スクリプトが現在処理しているタグの名前を保持します。次に、スクリプトはコールバック関数を定義します。この例では、コールバック関数は startElement、endElement、および textData です。マークを開くときと閉じるときは、それぞれ startElement 関数と endElement 関数を呼び出します。開始タグと終了タグの間のテキストで textData を呼び出します。
この例では、startElement タグは book 配列内の新しい要素を開始する book タグを探します。次に、textData 関数は現在の要素を調べて、それが発行者、タイトル、または著者タグであるかどうかを確認します。そうである場合、関数は現在のテキストを現在のブックに挿入します。
*/
// 正規表現を使用して XML を解析します
$f = fopen( 'test.xml', 'r' );
while( $data = fread( $f, 4096 ) ) { $xml .= $data; $f );preg_match_all( ”/<book>(.*?)</book>/s”, $xml, $bookblocks );
foreach( $bookblocks[1] as $block ){
preg_match_all( ”/<author>(.*?)</author>/”, $block, $author ); ;(.*?)</title>/”, $block, $title );
preg_match_all( ”/<publisher>(.*?)</publisher>/”, $block, $publisher );
/*
XML を読み取るために正規表現を使用することはお勧めしませんが、正規表現関数が常に使用できるため、これが最も互換性のある方法である場合があります。 XML の形式や構造を制御できないため、正規表現を使用してユーザーから XML を直接読み取らないでください。ユーザーから XML を読み取るには、常に DOM ライブラリまたは SAX パーサーを使用する必要があります。*/
//DOM を使用して XML を記述する
$books = array();
$books [] = array(
'title' => 'PHP Hacks',
'author' => 'ジャック・ヘリントン',
'出版社' => ”オライリー”
);
$books [] = array(
'title' => 'ポッドキャスティングハック',
'著者' => 'ジャック・ヘリントン',
'出版社' => ”オライリー”
);
$doc = 新しい DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( ”books” );
$doc->appendChild( $r );
foreach( $books as $book ){
$b = $doc->createElement( ”book” );
$author = $doc->createElement( ”著者” );
$author->appendChild( $doc->createTextNode( $book['author'] ) );
$b->appendChild( $author );
$title = $doc->createElement( ”title” );
$title->appendChild( $doc->createTextNode( $book['title'] ) );
$b->appendChild( $title );
$publisher = $doc->createElement( ”publisher” );
$publisher->appendChild( $doc->createTextNode( $book['publisher'] ) );
$b->appendChild( $publisher );
$r->appendChild( $b );
}
//echo $doc->saveXML();
/*
いくつかの例の図を使用してブックの数が組み込まれています。このデータは、ユーザーから取得することも、データ パックから取得することもできます。次に、各本の著者、タイトル、出版社が作成され、各ブック ポイントがルート ポイント ブックに追加されます。作成された XML はすべて正しい形式です。ただし、DOM を使用して XML を作成できない場合、これは問題になりますか?
Xml代コード
<?php
PHP 编写xml
$books = array();
$books [] = array('title' => 'PHP Hacks',
'author' => 'ジャック・ヘリントン',
'出版社' => ”オライリー”
);
$books [] = array(
'title' => 'ポッドキャスティングハック',
'著者' => 'ジャック・ヘリントン',
'出版社' => ”オライリー”
);
?>
foreach( $books as $book )
{
?>
<title><?php echo( $book['title'] ); ?>
<著者><?php echo( $book['author'] ); ?>
</著者>
<publisher><?php echo( $book['publisher'] ); ?>
</出版社>
</本>
<?php
}
?>
</書籍>
例で使用される test.xml は次のとおりです:
<?xml バージョン=”1.0″ エンコーディング=”utf8″?>
<著者>ジャック・ヘリントン</著者>
<title>PHP ハック - bkjia.com</title>
オライリー出版社>
</本>
<title>ポッドキャスティングのハック</title>
オライリー出版社>
</本>
</書籍>
http://www.bkjia.com/PHPjc/364615.html

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
