首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php xml字符串获取属性使用命名空间

php xml字符串获取属性使用命名空间
EN

Stack Overflow用户
提问于 2012-03-14 06:19:43
回答 1查看 321关注 0票数 0

我有以下使用名称空间的XML文件。

当我使用以下php函数时,它没有返回aws:Country Code的属性

代码语言:javascript
复制
$xml = new SimpleXMLElement($response,null,false,
                            'http://awis.amazonaws.com/doc/2005-07-11')

所以我想知道。如何拉出国家代码属性?我需要创建一个特殊函数吗?下面是curl调用返回的字符串。

代码语言:javascript
复制
<aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
<aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11">
<aws:OperationRequest><aws:RequestId>e3459429-82f5-f598-0219-18a8056cad27</aws:RequestId>
</aws:OperationRequest>

<aws:UrlInfoResult>

<aws:Alexa>

<aws:TrafficData>
    <aws:DataUrl type="canonical">samplesite.com</aws:DataUrl>
    <aws:Rank>47216</aws:Rank>
      <aws:RankByCountry>
         <aws:Country Code="US">

            <aws:Rank>11438</aws:Rank>
            <aws:Contribution>
              <aws:PageViews>72.5%</aws:PageViews>
              <aws:Users>76.4%</aws:Users>
            </aws:Contribution>
      </aws:Country>
      <aws:Country Code="IN">
        <aws:Rank>45749</aws:Rank>
        <aws:Contribution>
          <aws:PageViews>17.0%</aws:PageViews>
          <aws:Users>7.5%</aws:Users>
        </aws:Contribution>
     </aws:Country>
    </aws:RankByCountry>
</aws:TrafficData>
</aws:Alexa>
</aws:UrlInfoResult>
</aws:Response>
</aws:UrlInfoResponse>         
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-14 07:06:52

代码语言:javascript
复制
<?php

$xml=<<<EOF
<aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
<aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11">
<aws:OperationRequest><aws:RequestId>e3459429-82f5-f598-0219-18a8056cad27</aws:RequestId>
</aws:OperationRequest>

<aws:UrlInfoResult>

<aws:Alexa>

<aws:TrafficData>
    <aws:DataUrl type="canonical">samplesite.com</aws:DataUrl>
    <aws:Rank>47216</aws:Rank>
      <aws:RankByCountry>
     <aws:Country Code="US">

        <aws:Rank>11438</aws:Rank>
        <aws:Contribution>
          <aws:PageViews>72.5%</aws:PageViews>
          <aws:Users>76.4%</aws:Users>
        </aws:Contribution>
      </aws:Country>
      <aws:Country Code="IN">
    <aws:Rank>45749</aws:Rank>
    <aws:Contribution>
      <aws:PageViews>17.0%</aws:PageViews>
      <aws:Users>7.5%</aws:Users>
    </aws:Contribution>
     </aws:Country>
    </aws:RankByCountry>
</aws:TrafficData>
</aws:Alexa>
</aws:UrlInfoResult>
</aws:Response>
</aws:UrlInfoResponse>
EOF;

$sxe = new SimpleXMLElement($xml, null, false, 'http://awis.amazonaws.com/doc/2005-07-11');
foreach($sxe->xpath('//*[@Code]') as $node) {
        if($node->getName() != 'Country') continue;
        echo $node->attributes()->Code . "\n";
}

?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9693088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档