ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでの simplexml_load_string の使用

php_PHP チュートリアルでの simplexml_load_string の使用

WBOY
WBOYオリジナル
2016-07-13 10:39:06757ブラウズ

まずはコードで問題を再現してみましょう

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

コードは次のとおりです

$string = << <データ>
こんにちは ワールド 終わり;

$data = simplexml_load_string($string);

print_r($data); print_r($data->foo); ?>



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

コードは次のとおりです

( [foo] => 配列 ( 理由は実際には非常に簡単です。上記の simplexml_load_string の結果では、foo は配列ではなく、反復可能なオブジェクトです。 次のように確認できます:
SimpleXMLElement オブジェクト
[0] => SimpleXMLElement オブジェクト

(
[バー] => こんにちは
)
[1] => SimpleXMLElement オブジェクト
(
[バー] => 世界
)
)
)
SimpleXMLElement オブジェクト
(
[バー] => こんにちは
)




print_r は foo が 2 つの bar 要素を持つ配列であることを示していますが、最終的には 1 つの bar 要素のみが表示されます。

コードは次のとおりです

print_r や var_dump の出現は完全に信頼できるものではないようですので、より注意してください。

取得したXMLデータが以下の場合(curlやfsockopenなどで取得可能)

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


こんにちは

配列;配列;配列;
<送信済み>
久しぶりにお会いしました。お元気ですか?
ここ数日会っていませんが、お元気ですか?

<送信済み>
お元気ですか?
やあ、調子はどう?

<送信済み>
こんにちは、ブルックス!お元気ですか?
やあ、ブルックス!大丈夫ですか?

<送信済み>
こんにちは、バーバラ、お元気ですか?
やあ、バーバラ、調子はどう?

<送信済み>
お元気ですか? - 元気です、ありがとうございます。
お元気ですか? -わかりました、ありがとう。

simplexml_load_string を通過します:

PHP言語で必要な値を取得するには、次のメソッドを使用できます。

コードは次のとおりです

単純なXMLElementオブジェクト
(
[@attributes] => 配列 (
[数値] => 219
[ID] = & gt; [name] =>219
)

[キー] => こんにちは www.111cn.Net

[pos] => SimpleXMLElement オブジェクト

(
)

[受け入れ] => 配列; [送信済み] => 配列

(

[0] => SimpleXMLElement オブジェクト
(
[orig] =&gt; [Trans] = & GT; 何日も見に行きましたが、元気ですか?
)

[1] => SimpleXMLElement オブジェクト
(
[オリグ] = & GT; お元気ですか? [トランス] = & GT; やあ、こんにちは?

)


[2] => SimpleXMLElement オブジェクト
(
[オリグ] = & GT; こんにちは、ブルックス! [トランス] = & GT; やあ、ブルックス!大丈夫ですか?
)

[3] => SimpleXMLElement オブジェクト
(
[オリグ] = & GT; こんにちは、バーバラ、お元気ですか? [トランス] = > やあ、バーバラ、調子はどうだ?
)

[4] => SimpleXMLElement オブジェクト

(
[orig] =>お元気ですか? [トランス] = & GT; 調子はどうですか? -わかりました、ありがとう。
)

)

)

コードは次のとおりです
$data = <<

こんにちは

配列;配列;配列;
<送信済み>
久しぶりにお会いしました。お元気ですか?
ここ数日会っていませんが、お元気ですか?

<送信済み>
お元気ですか?
やあ、調子はどう?

<送信済み>
こんにちは、ブルックス!お元気ですか?
やあ、ブルックス!大丈夫ですか?

<送信済み>
こんにちは、バーバラ、お元気ですか?
やあ、バーバラ、調子はどう?

<送信済み>
お元気ですか? - 元気です、ありがとうございます。
お元気ですか? -わかりました、ありがとう。


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); //こんにちは
?>

http://www.bkjia.com/PHPjc/733191.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/733191.html技術記事まず、コードを使用して問題を再現します。一見すると、結果は非常に混乱します。コードは次のとおりです。php $string = EOF data foobarhello/bar/foo foobarworld/bar/foo /data EOF; simplexml_...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。