php_PHP チュートリアルでの simplexml_load_string の使用
リリース: 2016-07-13 10:39:06
まずはコードで問題を再現してみましょう
一見すると、結果は不可解です:
コードは次のとおりです |
|
$string = <<
<データ>
こんにちは
ワールド
データ>
終わり;
$data = simplexml_load_string($string);
print_r($data);
print_r($data->foo);
?>
一見すると、結果は不可解です: |
コードは次のとおりです
|
SimpleXMLElement オブジェクト |
(
[foo] => 配列
(
[0] => SimpleXMLElement オブジェクト
(
[バー] => こんにちは
)
[1] => SimpleXMLElement オブジェクト
(
[バー] => 世界
)
)
)
SimpleXMLElement オブジェクト
(
[バー] => こんにちは
)
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などで取得可能)
コードは次のとおりです |
|
こんにちは
配列;配列;配列;
<送信済み>
久しぶりにお会いしました。お元気ですか?
ここ数日会っていませんが、お元気ですか?
送信済み>
<送信済み>
お元気ですか?
やあ、調子はどう?
送信済み>
<送信済み>
こんにちは、ブルックス!お元気ですか?
やあ、ブルックス!大丈夫ですか?
送信済み>
<送信済み>
こんにちは、バーバラ、お元気ですか?
やあ、バーバラ、調子はどう?
送信済み>
<送信済み>
お元気ですか? - 元気です、ありがとうございます。
お元気ですか? -わかりました、ありがとう。
送信済み>
|
simplexml_load_string を通過します:
コードは次のとおりです |
|
単純な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; 調子はどうですか? -わかりました、ありがとう。
)
)
)
|
PHP言語で必要な値を取得するには、次のメソッドを使用できます。
コードは次のとおりです
|
|
$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.comtruehttp://www.bkjia.com/PHPjc/733191.html技術記事まず、コードを使用して問題を再現します。一見すると、結果は非常に混乱します。コードは次のとおりです。php $string = EOF data foobarhello/bar/foo foobarworld/bar/foo /data EOF; simplexml_...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31