1

我试图使用 PHP simplexml_load_string 并在 $doc 上使用 xpath 来导航类似于这个($doc)的 XML 块,以仅获取像这样的“Day”块:

$myday = $doc->xpath ('//Day');

这使我可以将块中的所有数据作为对象访问,这意味着

$myday->成人计数;

返回 1 和

$myday->身份证;

返回“6a0”

但是我无法访问未使用的“SpecialDeals”内容:

$myday->SpecialDeals

也不使用:

$myday->SpecialDeals->a:string

在这种情况下,正确的语法是什么?

<Days>
  <DaysId>687</DaysId>
    <Day>
      <AdultsCount>1</AdultsCount>
      <Availability>Available</Availability>
      <Id>6a0</Id>
      <RoomType>Studio</RoomType>
      <SpecialDeals xmlns:a="http://microsoft.com/2003/Arrays">
        <a:string>Best Day Ever</a:string>
      </SpecialDeals>
    </Day>
  <DaysPrice>247.4</DaysPrice>
</Days>");
4

1 回答 1

1

您可以使用以下方法访问带有冒号的标签(也称为命名空间)children()

echo $xml->Day->SpecialDeals->children('a', true)->string[0];

演示!

这篇SitePoint 文章详细解释了命名空间。

于 2013-10-24T15:50:51.277 回答