ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルでの Simplexml_load_string の使用例の共有

php_PHP チュートリアルでの Simplexml_load_string の使用例の共有

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-13 10:37:35
オリジナル
961 人が閲覧しました

まずコードを使用して問題を再現します

一見すると、結果は不可解です:

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

$string = <<
hello
<バー>

$data = simplexml_load_string($string);

print_r($data);

print_r($data->foo);




一見すると、結果は不可解です:

コードをコピー

コードは次のとおりです:SimpleXMLElement オブジェクト
(
[foo] => 配列
(
[0] => SimpleXMLElement オブジェクト
(
[bar] => hello)
)
[1] => SimpleXMLElement オブジェクト
(
[bar] => ワールド
)
)
)
SimpleXMLElement オブジェクト
(
[bar] => こんにちは
)



明らかに print_r は foo が 2 つの bar 要素を持つ配列であることを示していますが、最終的には 1 つの bar 要素だけが表示されます。
その理由は実際には非常に簡単です。上記の simplexml_load_string の結果では、foo は配列ではなく、反復可能なオブジェクトです。 次のように確認できます:



コードをコピー

コードは次のとおりです:foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($ v);



print_r や var_dump の出現は完全に信頼できるものではないようですので、より注意してください。
取得した XML データが次のとおりであるとします: (curl、fsockopen などを使用して取得できます)

コードをコピーします

コードは次のとおりです:
こんにちは

Array;Array;Array;

< ; orig>久しぶりにお元気ですか?
お元気ですか?


こんにちは!お元気ですか?
こんにちは?


こんにちは、ブルックス!お元気ですか?
こんにちは、ブルックス!大丈夫ですか?


こんにちは、バーバラ、お元気ですか?
こんにちは、バーバラ、お元気ですか?


お元気ですか? - 元気です、ありがとうございます。
お元気ですか? -わかりました、ありがとう。


simplexml_load_string を通過します:


コードをコピーします

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


SimpleXMLElement オブジェクト
(
[@attributes] => Array
[name] => 219
)

[容認] = Array; ️
) ️こんにちは、ブルックスさん、お元気ですか? | やあ、バーバラ、調子はどう?

gt; 調子はどうですか? - ありがとう。
)

)



次のメソッドを使用して、PHP 言語で必要な値を取得できます:




コードをコピーします

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


$data = <<

こんにちは

Array;Array;Array;
久しぶりにお元気ですか?
お元気ですか?


こんにちは!お元気ですか?
こんにちは?


こんにちは、ブルックス!お元気ですか?
こんにちは、ブルックス!大丈夫ですか?


こんにちは、バーバラ、お元気ですか?
こんにちは、バーバラ、お元気ですか?


お元気ですか? - 元気です、ありがとうございます。
お元気ですか? -わかりました、ありがとう。


XML;
$xmldata = simplexml_load_string($data);
header("Content-Type: text/html; charset=UTF-8");
print_r($xmldata);
echo "
".trim($xmldata->sent[0]->orig); //久しぶりにお元気ですか。 ?
echo "
".trim($xmldata->key); //こんにちは
?>

www.bkjia.com本当http://www.bkjia.com/PHPjc/735236.html技術記事まず、コードを使用して問題を再現します。一見すると、結果は非常に混乱します。次のようにコードをコピーします。 ?php $string = EOF data foobarhello/bar/foo foobarworld/bar/foo /data EOF; ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート