PHP - 简单的 XML 属性问题

发布于 2024-11-15 16:47:10 字数 1263 浏览 3 评论 0原文

我使用 PHP 和简单 XML。

我使用的循环不像预期的那样工作:

foreach($item->Image->attributes()->source as $key => $value)
{
    echo $value;
}

在 foreach 中,我尝试告诉我想要获取属性中列出的图像的“源”。

上面的 $item 是通过围绕我上面的代码 foreach($xml_content->Section->Item as $item {}, (如果您需要知道它来自哪里)

我的对象看起来像这样:

object(SimpleXMLElement)#36 (4) {
    ["Text"]=>
        string(15) "Vinbergs socken"
    ["Description"]=>
        string(73) "Vinbergs socken ingick i Faurås härad och ligger i Falkenbergs kommun.
    "
    ["Url"]=>
        string(44) "http://sv.wikipedia.org/wiki/Vinbergs_socken"
    ["Image"]=>
         object(SimpleXMLElement)#38 (1) {
             ["@attributes"]=>
                  array(3) {
                      ["source"]=>
                            string(113) "http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Faur%C3%A5s_Vinberg.svg/50px-Faur%C3%A5s_Vinberg.svg.png"
                      ["width"]=>
                          string(2) "50"
                      ["height"]=>
                            string(2) "41"
                      }
             }
     }

我的帖子开头的循环有什么问题?

I use PHP and Simple XML.

I use a loop that does not work like expected:

foreach($item->Image->attributes()->source as $key => $value)
{
    echo $value;
}

In the foreach I try to tell that I want to get the "source" of the image which is listed in the attributes.

$item above is created with a loop around my code above foreach($xml_content->Section->Item as $item {}, (if you need to know where it came from)

My object looks like this:

object(SimpleXMLElement)#36 (4) {
    ["Text"]=>
        string(15) "Vinbergs socken"
    ["Description"]=>
        string(73) "Vinbergs socken ingick i Faurås härad och ligger i Falkenbergs kommun.
    "
    ["Url"]=>
        string(44) "http://sv.wikipedia.org/wiki/Vinbergs_socken"
    ["Image"]=>
         object(SimpleXMLElement)#38 (1) {
             ["@attributes"]=>
                  array(3) {
                      ["source"]=>
                            string(113) "http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Faur%C3%A5s_Vinberg.svg/50px-Faur%C3%A5s_Vinberg.svg.png"
                      ["width"]=>
                          string(2) "50"
                      ["height"]=>
                            string(2) "41"
                      }
             }
     }

What is wrong with my loop in the beginning of my post?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城挽邺 2024-11-22 16:47:10

您正在尝试迭代一个字符串,而不是一个数组

$item->Image->attributes()->source

要迭代 Image 元素的所有属性,请使用

foreach ($item->Image->attributes() as $attributeName => $attributeValue) {

如果您只想输出源属性的值,请不要迭代,而是使用简写 请

echo $item->Image['source']

参阅此 演示PHP 手册中的 SimpleXml 基本用法示例

Your are trying to iterate a string, not an array

$item->Image->attributes()->source

To iterate all the attributes of the Image element, use

foreach ($item->Image->attributes() as $attributeName => $attributeValue) {

If you just want to output the value of the source attribute, do not iterate but use the shorthand

echo $item->Image['source']

See this demo and the SimpleXml Basic Usage Examples in the PHP Manual

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文