目次
1. 概要とインストール
2. 使用例
基本的な使用方法

PHP拡張のXML操作(1)-SimpleXML

May 17, 2018 am 09:38 AM
PHP拡張子 simplexml XML操作


1. 概要とインストール

SimpleXML 拡張機能は、XML を一般的な属性セレクターと配列イテレーターを備えたオブジェクトに変換できる、非常にシンプルで使いやすいツールセットを提供します。

この拡張機能には libxml PHP 拡張機能が必要です。これは、--enable-libxml を使用する必要があることを意味しますが、libxml はデフォルトで有効になっているため、これは暗黙的に行われます。

PHP5 以降が必要です。

この拡張機能はデフォルトで有効になっており、コンパイル時に次のオプションを使用して無効にできます: --disable-simplexml

2. 使用例

基本的な使用方法

例 #1 XML 文字列を含むファイル example.php をインクルードします。

<?php
$xmlstr = <<<XML
<?xml version=&#39;1.0&#39; standalone=&#39;yes&#39;?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El Act&#211;r</actor>
</character>
</characters>
<plot>
So, this language. It&#39;s like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
XML;
?>
ログイン後にコピー

SimpleXML の単純さは、基本的な XML ドキュメントから文字列または数値を抽出するときに最もよくわかります。

例 #2

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
echo $movies->movie[0]->plot;?>
ログイン後にコピー

を取得する上記のルーチンは出力します:

   So, this language. It&#39;s like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
ログイン後にコピー

PHP の命名規則で許可されていない文字 (ハイフンなど) を含む XML ドキュメント内の要素にアクセスするには、要素名を中かっことアポストロフィでカプセル化します。

例 #3

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
echo $movies->movie->{&#39;great-lines&#39;}->line;?>
ログイン後にコピー
の取得

上記の例 ルーチンは次の出力を行います:

PHP solves all my web problems
ログイン後にコピー

例 #4 SimpleXML 内の非固有要素へのアクセス

要素の複数のインスタンスが 1 つの親要素の子として存在する場合、通常の反復手法が適用されます。上記のルーチンは出力します:

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
/* For each <character> node, we echo a separate <name>. */foreach ($movies->movie->characters->character as $character) {
echo $character->name, &#39; played by &#39;, $character->actor, PHP_EOL;}
?>
ログイン後にコピー

注:

プロパティ (前の例の $movies->movie) は配列ではなく、反復可能でアクセス可能なオブジェクトです。

例 5 属性の使用

ここまででは、要素名とその値を読み取る作業のみを説明しました。SimpleXML は、配列の要素と同じように要素の属性にアクセスすることもできます。

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr
ログイン後にコピー
ログイン後にコピー

上記のルーチンは次のように出力します。 #6 要素と属性をテキストと比較する

要素または属性を文字列と比較するか、文字列を必要とする関数に渡すには、

(string) を使用して文字列にキャストする必要があります。それ以外の場合、PHP は を処理します。

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
/* Access the <rating> nodes of the first movie.* Output the rating scale, too. */
foreach ($movies->movie[0]->rating as $rating) {
switch((string) $rating[&#39;type&#39;]) { // Get attributes as element indicescase &#39;thumbs&#39;:echo $rating, &#39; thumbs up&#39;;
break;case &#39;stars&#39;:echo $rating, &#39; stars&#39;;break;}}
?>
ログイン後にコピー

上記のルーチンは次のように出力します:

7 thumbs up5 stars
ログイン後にコピー
例 #7 2 つの要素の比較

PHP 5.2.0 以降、2 つの SimpleXMLElement は同じ要素を指している場合でも異なるものとみなされます。上記のルーチンは出力します:

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
if ((string) $movies->movie->title == &#39;PHP: Behind the Parser&#39;) {print &#39;My favorite movie.&#39;;}
echo htmlentities((string) $movies->movie->title);?>
ログイン後にコピー
例 #8 スラッシュの 1 つを使用します。

上記のルーチンは出力します:

My favorite movie.PHP: Behind the Parser
ログイン後にコピー

例 #9 SimpleXML のデータは定数である必要はありません。オブジェクトでは、そのすべての要素を操作できます。

<?phpinclude &#39;example.php&#39;;
$movies1 = new SimpleXMLElement($xmlstr);$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // false since PHP 5.2.0?>
ログイン後にコピー
上記のルーチンは次のように出力します:
bool(false)
ログイン後にコピー

例 #10 要素と属性の追加

PHP 5.1.3 以降、SimpleXML には子と属性を簡単に追加する機能が備わっています。 .

<?phpinclude &#39;example.php&#39;;
$movies = new SimpleXMLElement($xmlstr);
foreach ($movies->xpath(&#39;//character&#39;) as $character) {
echo $character->name, &#39;played by &#39;, $character->actor, PHP_EOL;}?>
ログイン後にコピー
上記のルーチンは次の出力を行います:
Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr
ログイン後にコピー
ログイン後にコピー

例 #11 DOM の相互運用性

PHP には、SimpleXML 形式と DOM 形式の間で XML ノードを変換するメカニズムがあります。この例では、DOM 要素を SimpleXML に変更する方法を示します。

<?phpinclude &#39;example.php&#39;;$movies = new SimpleXMLElement($xmlstr);
$movies->movie[0]->characters->character[0]->name = &#39;Miss Coder&#39;;
echo $movies->asXML();?>
ログイン後にコピー
上記のルーチンは出力します:



 
  PHP: Behind the Parser
  
   
    Miss Coder
    Onlivia Actora
   
   
    Mr. Coder
    El ActÓr
   
  
  
   So, this language. It&#39;s like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  
  
   PHP solves all my web problems
  
  7
  5
 
ログイン後にコピー

XML エラーの処理

例 #1 破損した XML 文字列の読み込み

<?phpinclude &#39;example.php&#39;;$movies = new SimpleXMLElement($xmlstr);
$character = $movies->movie[0]->characters->addChild(&#39;character&#39;);$character->addChild(&#39;name&#39;, &#39;Mr. Parser&#39;);
$character->addChild(&#39;actor&#39;, &#39;John Doe&#39;);
$rating = $movies->movie[0]->addChild(&#39;rating&#39;, &#39;PG&#39;);$rating->addAttribute(&#39;type&#39;, &#39;mpaa&#39;);
echo $movies->asXML();?>
ログイン後にコピー
上記のルーチンは出力します:



 
  PHP: Behind the Parser
  
   
    Ms. Coder
    Onlivia Actora
   
   
    Mr. Coder
    El ActÓr
   
  Mr. ParserJohn Doe
  
   So, this language. It&#39;s like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  
  
   PHP solves all my web problems
  
  7
  5
 PG
ログイン後にコピー

3 つの関連関数

simplexml_import_dom — 入手domnode.

simplexml_load_fileからのシンプルなオブジェクト - xmlファイルをオブジェクトに解釈します

simplexml_load_string - xmlの文字列をオブジェクト、関連するクラスおよびメンバー機能に解釈しますclass

SimpleXMLE element::addAttribute — SimpleXML 要素に属性を追加します

SimpleXMLElement::addChild — XML ノードに子要素を追加します
  • SimpleXMLElement::asXML — 整形式のsimplexml要素に基づくxml文字列elements simplexmlement ::属性 - 要素の属性を識別するcimplexmlement :: children - 与えられたnodeの子どもを見つけます:simplexmlelement :: __ construment - 新しいsimplexmlelementオブジェクトを作成します
  • SimpleXMLElement::count — 要素の子をカウントします
  • SimpleXMLElement::getDocNamespaces — document で宣言された名前空間を返します

SimpleXMLElement::getName — XML 要素の名前を取得します

SimpleXMLElement::getNamespaces — ドキュメントで使用されている名前空間を返します
  • SimpleXMLElement::registerXPathNamespace — 次の XPath クエリのプレフィックス/ns コンテキストを作成します

  • SimpleXMLElement::saveXML — 别名 SimpleXMLElement::asXML

  • SimpleXMLElement::__toString — 文字列の内容を返します

  • SimpleXMLElement::xpath — XML データに対して XPath クエリを実行します

SimpleXMLIterator类

  • SimpleXMLIterator::current — 現在の要素を返します

  • SimpleXMLIterator::getChildren — サブ要素を返します現在の要素の

  • SimpleXMLIterator::hasChildren — 現在の要素にサブ要素があるかどうかを確認します

  • SimpleXMLIterator::key — 現在のキーを返します

  • SimpleXMLIterator::next — 次の要素に移動します

  • Simple XMLイテレータ:: rewind — 最初の要素に巻き戻します

  • SimpleXMLIterator::valid — 現在の要素が有効かどうかを確認します

以上はPHP扩展のXML操作(一)—SimpleXMLの内容、その他の内容请关注PHP中文网(www.php.cn)!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでどの拡張子が使用されているかを確認する方法 PHPでどの拡張子が使用されているかを確認する方法 Aug 01, 2023 pm 04:13 PM

PHP で使用されている拡張子を確認するには、phpinfo() 関数の出力を表示し、コマンド ライン ツールを使用して、PHP 構成ファイルを確認します。 1. phpinfo() 関数の出力を表示し、単純な PHP スクリプトを作成し、このスクリプトを phpinfo.php として保存し、Web サーバーにアップロードします。ブラウザでこのファイルにアクセスし、ブラウザの検索機能を使用します。キーワードを探すだけです。ページ上の「extension」または「extension_loaded」で拡張機能に関する情報を見つけます。

php を使用して PDO を拡張し、Oracle データベースに接続する方法 php を使用して PDO を拡張し、Oracle データベースに接続する方法 Jul 29, 2023 pm 07:21 PM

PHP を使用して PDO を拡張し、Oracle データベースに接続する方法 はじめに: PHP は非常に人気のあるサーバー側プログラミング言語であり、Oracle は一般的に使用されるリレーショナル データベース管理システムです。この記事では、PHP 拡張機能 PDO (PHPDataObjects) を使用して Oracle データベースに接続する方法を紹介します。 1. PDO_OCI 拡張機能のインストール Oracle データベースに接続するには、まず PDO_OCI 拡張機能をインストールする必要があります。 PDO_OCI 拡張機能をインストールする手順は次のとおりです。

PHP を使用して SuiteCRM のレポート生成機能を拡張する方法 PHP を使用して SuiteCRM のレポート生成機能を拡張する方法 Jul 19, 2023 am 10:27 AM

PHP を使用して SuiteCRM のレポート生成機能を拡張する方法 SuiteCRM は、企業が顧客関係を管理するのに役立つ豊富な機能を提供する強力なオープンソース CRM システムです。重要な機能の 1 つはレポート生成であり、レポートを使用することにより、企業はビジネス状況をより深く理解し、正しい意思決定を行うことができます。この記事では、PHP を使用して SuiteCRM のレポート生成機能を拡張する方法と、関連するコード例を紹介します。開始する前に、SuiteCRM がインストールされていることを確認する必要があります。

PHP 入門: PHP 拡張機能のインストール PHP 入門: PHP 拡張機能のインストール May 20, 2023 am 08:49 AM

PHP を使用して開発する場合、いくつかの PHP 拡張機能を使用する必要がある場合があります。これらの拡張機能により、より多くの機能とツールが提供され、開発作業がより効率的かつ便利になります。ただし、これらの拡張機能を使用する前に、まずインストールする必要があります。この記事では、PHP 拡張機能をインストールする方法を紹介します。 1. PHP 拡張機能とは何ですか? PHP 拡張機能は、PHP プログラミング言語に追加の機能とサービスを提供するコンポーネントを指します。これらのコンポーネントは、PHP の拡張メカニズムを通じてインストールして使用できます。 PHP 拡張機能が役立つ

PHP の geoip 拡張機能を使用するにはどうすればよいですか? PHP の geoip 拡張機能を使用するにはどうすればよいですか? Jun 01, 2023 am 09:13 AM

PHP は、Web ページ上の動的コンテンツを処理できる一般的なサーバー側スクリプト言語です。 PHP の geoip 拡張機能を使用すると、PHP でユーザーの位置に関する情報を取得できます。この記事では、PHP の geoip 拡張機能の使用方法について説明します。 PHP の GeoIP 拡張機能とは何ですか? PHP の geoip 拡張機能は、IP アドレスと位置情報に関するデータを取得できる無料のオープンソース拡張機能です。この拡張機能は、MaxMin によって開発されたデータベースである GeoIP データベースで使用できます。

PHP 拡張機能と Pagoda パネルの PHP バージョン管理 PHP 拡張機能と Pagoda パネルの PHP バージョン管理 Jun 21, 2023 am 08:49 AM

Pagoda Panel はオープンソースのサーバー管理パネルで、Web サイト運営者に便利な Web サイト管理、データベース管理、SSL 証明書管理などのサービスを提供するとともに、強力な PHP 拡張機能と PHP バージョン管理機能も提供し、サーバー管理を容易にします。効率的。 1. PHP 拡張機能 PHP 拡張機能は、PHP の機能を拡張するためのモジュールです。PHP 拡張機能をインストールすることで、次のような機能やサービスを実装できます。

PHP 拡張機能開発の徹底調査: PHP 拡張機能開発の舞台裏の秘密を明らかにする PHP 拡張機能開発の徹底調査: PHP 拡張機能開発の舞台裏の秘密を明らかにする Feb 19, 2024 pm 11:40 PM

PHP 拡張機能の開発は、カスタム機能を作成し、PHP コア機能を拡張し、より強力なアプリケーションを構築する技術です。これは PHP の世界に新たな可能性をもたらし、開発者が言語の基本的な制限を超えることができるようにします。この記事では、PHP 拡張機能の開発の旅へお連れし、基本的な概念から高度なテクニックまで、包括的な知識と実践的なガイダンスを提供します。 PHP 拡張機能開発の基本 PHP 拡張機能開発を開始する前に、いくつかの基本概念を理解する必要があります。 PHP拡張機能とは何ですか? PHP 拡張機能は、PHP のコア機能を拡張し、新しいデータ型、関数、クラスを提供するダイナミック リンク ライブラリ (DLL) です。 PHP 拡張機能の利点 PHP 拡張機能には、スケーラビリティ、柔軟性、パフォーマンスの最適化、コードの再利用など、多くの利点があります。 PHP

完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 Jul 28, 2023 pm 02:46 PM

完全ガイド: PHP 拡張機能 SimpleXML を使用して XML データを読み取り、処理する方法 はじめに: 最新の Web 開発では、XML データの処理と操作は非常に一般的なタスクです。 PHP は、強力なサーバー側スクリプト言語として、XML データを処理および操作するためのさまざまな拡張機能と関数を提供します。その中でも、SimpleXML 拡張機能は、XML データの読み取りと処理のプロセスを簡素化する特に便利なツールです。この記事では、PHP 拡張機能の使用方法に関する完全なガイドを提供します。

See all articles