第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法獲取嵌套的 SimpleXMLElement 的屬性

無法獲取嵌套的 SimpleXMLElement 的屬性

PHP
慕妹3242003 2023-11-04 20:56:32
顯然我錯過了一些簡單的東西。我有以下 xml 字符串,我使用 simplexml_load_string 解析它:$xmlString = '<root><Title>Heading Text</Title><Image><img src="https://image.com?id=123" alt="alt text" /></Image></root>';$xml = simplexml_load_string($xmlString);但是,我無法訪問圖像內(nèi)的 img 標(biāo)簽。我想我會用來$xml->Image[0]->img獲取元素并 $xml->Image[0]->img['src']獲取圖像的 url。但我不斷收到錯誤:嘗試獲取非對象的屬性“img”$xml->Image[0]測試為 SimpleXMLElement 類型,當(dāng)我print_r()得到:SimpleXMLElement Object (       [img] => SimpleXMLElement Object (                 [@attributes] => Array (       [src] => https://image.com?id=123       [alt] => alt text     )            )  )就像我說的,我知道我錯過了一些非常明顯的東西,所以任何幫助將不勝感激。
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊

你是對的,$xml->Image[0]->img['src']會給你屬性,但它會把它作為一個對象src給你。

如果你運(yùn)行print_r($xml->Image[0]->img['src']);它會向你顯示:

SimpleXMLElement?Object(
????[0]?=>?https://image.com?id=123)

但如果你echo $xml->Image[0]->img['src'];改為運(yùn)行,它會給你這個:

https://image.com?id=123

原因是SimpleXMLElement 類實現(xiàn)了神奇的重載方法__toString(或其在內(nèi)部 C 代碼中的等效方法),因此每當(dāng)您將對象轉(zhuǎn)換為字符串時,它都會為您提供字符串內(nèi)容。由于echo始終需要一個字符串,因此它隱式執(zhí)行此操作,但您可以使用 顯式執(zhí)行此操作(string),例如:

$imageSrc?=?(string)$xml->Image[0]->img['src'];
var_dump($imageSrc);

(順便說一句,[0]始終是可選的 - 如果您不提供數(shù)字,SimpleXML 會假設(shè)您想要唯一或第一個具有該名稱的子項,因此、$xml->Image->img['src']和都會給出相同的結(jié)果。)$xml->Image[0]->img['src']$xml->Image->img[0]['src']$xml->Image[0]->img[0]['src']


查看完整回答
反對 回復(fù) 2023-11-04
  • 1 回答
  • 0 關(guān)注
  • 346 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號