初心者の場合、PHP での XML の変更について質問を投稿してください。

WBOY
リリース: 2016-06-13 12:48:25
オリジナル
848 人が閲覧しました

初心者がphpでのXMLの変更について質問があります。 !

<br />
$dom=new DOMDocument('1.0');<br />
$dom->load('ceshi.xml');<br />
$root=$dom->getElementsByTagName('online');<br />
$root=$root->item(0);<br />
$userid=$root->getElementsByTagName('userid');<br />
foreach($userid as $b)<br />
{<br />
  foreach($b->attributes as $attr){ <br />
<br />
$value=$attr->nodeValue;<br />
$name[].=$attr->nodeName;<br />
{if($value=="xiao")<br />
{  <br />
   print_r($name);   <br />
<br />
}<br />
<br />
 }<br />
}<br />
<br />
}<br />
$dom->save('ceshi.xml');<br />
<br />
ログイン後にコピー


XML に来てください
<br />
<br />
<?xml version="1.0"?><br />
<online> <br />
<userid time="2007-06-13 11:20:08" ip="wangqile" label="wang">xiaxin</userid> <br />
<userid time="2007-06-13 13:22:15" pp="dasdsa" label="xiao" ip="dasdsa">rwet</userid> <br />
<userid time="2007-06-13 17:17:00" ip="dasdsa" label="ji"> gaoji</userid> <br />
</online><br />
<br />
<br />
ログイン後にコピー


問題は、上記の書き方では、label="xiao" の行のみがループされる、つまり、その行のノード名の値のみが返されることです。 。
上記のように書くと、1行目と2行目と一緒に返されるnodenameの値が返されます。 。変更方法が分かりません~~初心者なのでアドバイスお願いします! ! !


-----解決策--------------------------------
この投稿は最終的に xuzuning によって編集され、2013-04-20 10:25:31

によって書かれました。 これはどういう意味ですか?
$dom=new DOMDocument('1.0');<br />
$dom->load('ceshi.xml');<br />
$root=$dom->getElementsByTagName('online');<br />
$root=$root->item(0);<br />
$userid=$root->getElementsByTagName('userid');<br />
foreach($userid as $b) {<br />
  if($b->attributes->getNamedItem('label')->nodeValue == 'xiao') {<br />
    foreach($b->attributes as $attr){<br />
      $res[$attr->nodeName] = $attr->nodeValue;<br />
    }<br />
    print_r($res);<br />
  }<br />
}<br />
ログイン後にコピー
配列
(
[時間] => 2007-06-13 13:22:15
[pp] => ダスドサ
[ラベル] =>シャオ
[ip] => ダスドサ
)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート