-
- <人間>
- <張英>
- <名前>張英名前>
- <性別>男性< ;/性別>
- <古い>28古い>
- 張英>
- <タンク>
- <名前>タンク名前>
- <性別>男性性別>
- <古い> 28
コードをコピー
1) DOMDocument が XML を読み取ります
-
- $doc = new DOMDocument();
- $doc->load('person.xml'); //xml ファイルを読み込みます
- $humans = $doc->getElementsByTagName_r ( "humans" ); //人間タグのオブジェクト配列を取得します
- foreach( $humans as $human )
- {
- $names = $human->getElementsByTagName_r( "name" );タグ名
- $name = $names->item(0)->nodeValue; // などのノードの値を取得します。
- $sexs = $human->getElementsByTagName_r( "セックス" );
- $sex = $sexs->item(0)->nodeValue;
- $olds = $human->getElementsByTagName_r( "old" );
- $old = $olds->item( 0)- >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."-".$tmp->old."
";
- }
- ?>
コードをコピー
3 ) phpを使用データを記憶するための正規表現
-
- $xml = "";
- $f = fopen('person.xml', 'r');
- while( $data = fread( $f, 4096 ) ) {
- $xml .= $data;
- }
- fclose( $f );
- // 上記のデータを読み取ります
- preg_match_all( "/(.*?)/s", $xml, $ human ); //最も外側のタグの内容と一致します
- foreach( $humans[1] as $k=>$human )
- {
- preg_match_all( "/(.*?)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;
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(”) に相当します。
|