【问题标题】:PHP XML echoing values contained in a node节点中包含的 PHP XML 回显值
【发布时间】:2011-03-24 12:01:01
【问题描述】:

我有一个 XML 文档,其中包含 3 个文章节点,每个文章包含: 标题 图片 链接

我需要能够从节点中获取 Title/Image/Link 值。

$query = $xpath->query('//section/article');

foreach($query as $currentArticle => $artContents):
print_r( $artContents->title);
endforeach

; 这对我不起作用,我可以使用 ->NodeName 和 nodeValue ,但它们没有深入挖掘,只是分别显示“文章”或全部内容。

解释更多:

我的 XML 是

<article>
<title>Title </title>
<link>http:// </link>
<img>image src </img>
</article>

我需要的输出是:

标题->标题

链接->http://

等等

更新解释:

foreach($query as $articles):
foreach($articles->childNodes as $childNode) {

    if ($childNode->nodeType === XML_ELEMENT_NODE) {

                  $stored =    $childNode->nodeValue;

                    array_push( $availAds, $stored );           

    }
}

endforeach;

感谢 Gordon,我目前拥有的。这虽然使我的数组看起来像:

//previous values:

      }
  ["1300884672_071.jpg"]=>
  array(3) {
    ["image"]=>
    string(30) "1300884672_071.jpg"
    ["title"]=>
    string(6) "secind title"
    ["link"]=>
    string(10) "grtgrtgrtg"
  }
  ["1300884618_071.jpg"]=>
  array(3) {
    ["image"]=>
    string(30) "1300884618_071.jpg"
    ["title"]=>
    string(5) "first title"
    ["link"]=>
    string(10) "http://www.google.com"
  }

//updated values that 
  [0]=>
  string(6) "My Title"
  [1]=>
  string(89) "/1300961550.jpg"
  [2]=>
  string(22) "rtherherhgerg thursada"
  [3]=>
  string(20) "custome 222222222222"

我显然需要我的数组保持一致,但不知道如何做到这一点。谢谢你的耐心。

鲍勃

【问题讨论】:

    标签: php xml dom


    【解决方案1】:

    我仍然不确定问题是什么,但是您在寻找吗

    foreach($query as $articles):
        foreach($articles->childNodes as $childNode) {
            if ($childNode->nodeType === XML_ELEMENT_NODE) {
                printf("%s->%s%s", $childNode->nodeName, $childNode->nodeValue, PHP_EOL);
            }
        }
    }
    

    这将遍历查询中返回的 $article 节点的直接子节点的所有 DOMElement 节点,并以这种格式“nodename->nodevalue”和换行符打印它们。

    【讨论】:

    • 您好,谢谢,这就是我想要实现的目标,抱歉我的解释不佳。这将输出 values ,但我需要能够引用每个值以将它们放入数组中。所以我试图得到: $title = $childNode->title $img = $childNode->img 等,然后我可以将其放入正确的数组中。谢谢。我已经用 if 语句对其进行了排序。
    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 2017-10-15
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2018-07-25
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多