Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP解析alexaapi_Php_Alexa - Fatal编程技术网

用PHP解析alexaapi

用PHP解析alexaapi,php,alexa,Php,Alexa,我需要帮助从AmazonAlexaAPI中提取属性 具体来说,我需要从以下内容中提取属性值,如“VN”: <aws:Country Code="VN"> 以下是完整的Alexa XML响应: 此XML文件似乎没有任何与之关联的样式信息。文档树如下所示 <aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"> <aws:Response xmlns:aws="http:/

我需要帮助从AmazonAlexaAPI中提取属性

具体来说,我需要从以下内容中提取属性值,如“VN”:

<aws:Country Code="VN">
以下是完整的Alexa XML响应:

此XML文件似乎没有任何与之关联的样式信息。文档树如下所示

<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>1551fc65-c954-3af9-4cc1-a6c05a87bb98</aws:RequestId>
</aws:OperationRequest>
<aws:UrlInfoResult>
<aws:Alexa>
<aws:ContentData>
<aws:DataUrl type="canonical">stackoverflow.com</aws:DataUrl>
<aws:LinksInCount>66351</aws:LinksInCount>
</aws:ContentData>
<aws:TrafficData>
<aws:DataUrl type="canonical">stackoverflow.com</aws:DataUrl>
<aws:Rank>49</aws:Rank>
<aws:Rank>49</aws:Rank>
<aws:RankByCountry>
<aws:Country Code="VN">
<aws:Rank>78</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.7%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="IN">
<aws:Rank>18</aws:Rank>
<aws:Contribution>
<aws:PageViews>20.1%</aws:PageViews>
<aws:Users>18.3%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="ID">
<aws:Rank>68</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.7%</aws:PageViews>
<aws:Users>1.7%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="EG">
<aws:Rank>84</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.0%</aws:PageViews>
<aws:Users>0.9%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="TH">
<aws:Rank>76</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.6%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="BD">
<aws:Rank>35</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.6%</aws:PageViews>
<aws:Users>0.7%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="TR">
<aws:Rank>44</aws:Rank>
<aws:Contribution>
<aws:PageViews>3.0%</aws:PageViews>
<aws:Users>2.4%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="MY">
<aws:Rank>58</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.5%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="RU">
<aws:Rank>35</aws:Rank>
<aws:Contribution>
<aws:PageViews>5.2%</aws:PageViews>
<aws:Users>5.0%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="IL">
<aws:Rank>25</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.7%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="TW">
<aws:Rank>128</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.9%</aws:PageViews>
<aws:Users>0.9%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="ES">
<aws:Rank>71</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.8%</aws:PageViews>
<aws:Users>1.8%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="PK">
<aws:Rank>26</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.9%</aws:PageViews>
<aws:Users>1.9%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="US">
<aws:Rank>68</aws:Rank>
<aws:Contribution>
<aws:PageViews>13.1%</aws:PageViews>
<aws:Users>15.4%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="HK">
<aws:Rank>53</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.8%</aws:PageViews>
<aws:Users>0.7%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="RO">
<aws:Rank>40</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.6%</aws:PageViews>
<aws:Users>0.5%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="IR">
<aws:Rank>34</aws:Rank>
<aws:Contribution>
<aws:PageViews>3.5%</aws:PageViews>
<aws:Users>3.0%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="AU">
<aws:Rank>64</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.0%</aws:PageViews>
<aws:Users>1.0%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="SA">
<aws:Rank>104</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.6%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="PL">
<aws:Rank>47</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.6%</aws:PageViews>
<aws:Users>1.4%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="NG">
<aws:Rank>44</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.9%</aws:PageViews>
<aws:Users>1.0%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="GB">
<aws:Rank>67</aws:Rank>
<aws:Contribution>
<aws:PageViews>2.3%</aws:PageViews>
<aws:Users>2.5%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="FR">
<aws:Rank>105</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.6%</aws:PageViews>
<aws:Users>1.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="KR">
<aws:Rank>38</aws:Rank>
<aws:Contribution>
<aws:PageViews>3.4%</aws:PageViews>
<aws:Users>3.8%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="UA">
<aws:Rank>29</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.7%</aws:PageViews>
<aws:Users>1.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="BR">
<aws:Rank>63</aws:Rank>
<aws:Contribution>
<aws:PageViews>2.5%</aws:PageViews>
<aws:Users>2.4%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="IT">
<aws:Rank>65</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.9%</aws:PageViews>
<aws:Users>1.9%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="GR">
<aws:Rank>107</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.5%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="ZA">
<aws:Rank>47</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.7%</aws:PageViews>
<aws:Users>0.8%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="BY">
<aws:Rank>22</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.8%</aws:PageViews>
<aws:Users>0.6%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="MX">
<aws:Rank>138</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.7%</aws:PageViews>
<aws:Users>0.7%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="NL">
<aws:Rank>59</aws:Rank>
<aws:Contribution>
<aws:PageViews>0.8%</aws:PageViews>
<aws:Users>0.7%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="CA">
<aws:Rank>64</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.1%</aws:PageViews>
<aws:Users>1.3%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="JP">
<aws:Rank>407</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.0%</aws:PageViews>
<aws:Users>1.4%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="CN">
<aws:Rank>116</aws:Rank>
<aws:Contribution>
<aws:PageViews>4.7%</aws:PageViews>
<aws:Users>5.9%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="O">
<aws:Rank/>
<aws:Contribution>
<aws:PageViews>13.5%</aws:PageViews>
<aws:Users>13.0%</aws:Users>
</aws:Contribution>
</aws:Country>
<aws:Country Code="DE">
<aws:Rank>112</aws:Rank>
<aws:Contribution>
<aws:PageViews>1.7%</aws:PageViews>
<aws:Users>1.8%</aws:Users>
</aws:Contribution>
</aws:Country>
</aws:RankByCountry>
<aws:UsageStatistics>
<aws:UsageStatistic>
<aws:TimeRange>
<aws:Months>3</aws:Months>
</aws:TimeRange>
<aws:Rank>
<aws:Value>49</aws:Value>
<aws:Delta>-8</aws:Delta>
</aws:Rank>
<aws:Reach>
<aws:Rank>
<aws:Value>49</aws:Value>
<aws:Delta>-2</aws:Delta>
</aws:Rank>
<aws:PerMillion>
<aws:Value>16,260</aws:Value>
<aws:Delta>+6.8%</aws:Delta>
</aws:PerMillion>
</aws:Reach>
<aws:PageViews>
<aws:PerMillion>
<aws:Value>1,021.6</aws:Value>
<aws:Delta>+4.01%</aws:Delta>
</aws:PerMillion>
<aws:Rank>
<aws:Value>73</aws:Value>
<aws:Delta>-3</aws:Delta>
</aws:Rank>
<aws:PerUser>
<aws:Value>4.36</aws:Value>
<aws:Delta>-2.68%</aws:Delta>
</aws:PerUser>
</aws:PageViews>
</aws:UsageStatistic>
<aws:UsageStatistic>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Rank>
<aws:Value>51</aws:Value>
<aws:Delta>+2</aws:Delta>
</aws:Rank>
<aws:Reach>
<aws:Rank>
<aws:Value>50</aws:Value>
<aws:Delta>+1</aws:Delta>
</aws:Rank>
<aws:PerMillion>
<aws:Value>15,780</aws:Value>
<aws:Delta>-7.59%</aws:Delta>
</aws:PerMillion>
</aws:Reach>
<aws:PageViews>
<aws:PerMillion>
<aws:Value>1,031.2</aws:Value>
<aws:Delta>-7.33%</aws:Delta>
</aws:PerMillion>
<aws:Rank>
<aws:Value>75</aws:Value>
<aws:Delta>1</aws:Delta>
</aws:Rank>
<aws:PerUser>
<aws:Value>4.36</aws:Value>
<aws:Delta>+0.2%</aws:Delta>
</aws:PerUser>
</aws:PageViews>
</aws:UsageStatistic>
<aws:UsageStatistic>
<aws:TimeRange>
<aws:Days>7</aws:Days>
</aws:TimeRange>
<aws:Rank>
<aws:Value>50</aws:Value>
<aws:Delta>0</aws:Delta>
</aws:Rank>
<aws:Reach>
<aws:Rank>
<aws:Value>51</aws:Value>
<aws:Delta>+3</aws:Delta>
</aws:Rank>
<aws:PerMillion>
<aws:Value>15,770</aws:Value>
<aws:Delta>-2.89%</aws:Delta>
</aws:PerMillion>
</aws:Reach>
<aws:PageViews>
<aws:PerMillion>
<aws:Value>1,047</aws:Value>
<aws:Delta>-3.74%</aws:Delta>
</aws:PerMillion>
<aws:Rank>
<aws:Value>75</aws:Value>
<aws:Delta>5</aws:Delta>
</aws:Rank>
<aws:PerUser>
<aws:Value>4.39</aws:Value>
<aws:Delta>-0.90%</aws:Delta>
</aws:PerUser>
</aws:PageViews>
</aws:UsageStatistic>
<aws:UsageStatistic>
<aws:TimeRange>
<aws:Days>1</aws:Days>
</aws:TimeRange>
<aws:Rank>
<aws:Value>96</aws:Value>
<aws:Delta>+1</aws:Delta>
</aws:Rank>
<aws:Reach>
<aws:Rank>
<aws:Value>89</aws:Value>
<aws:Delta>0</aws:Delta>
</aws:Rank>
<aws:PerMillion>
<aws:Value>9,180</aws:Value>
<aws:Delta>+0.6%</aws:Delta>
</aws:PerMillion>
</aws:Reach>
<aws:PageViews>
<aws:PerMillion>
<aws:Value>629</aws:Value>
<aws:Delta>+4.2%</aws:Delta>
</aws:PerMillion>
<aws:Rank>
<aws:Value>117</aws:Value>
<aws:Delta>1</aws:Delta>
</aws:Rank>
<aws:PerUser>
<aws:Value>4.37</aws:Value>
<aws:Delta>+4%</aws:Delta>
</aws:PerUser>
</aws:PageViews>
</aws:UsageStatistic>
</aws:UsageStatistics>
<aws:ContributingSubdomains>
<aws:ContributingSubdomain>
<aws:DataUrl>stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>99.00%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>98.85%</aws:Percentage>
<aws:PerUser>4.35</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>ru.stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>1.37%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.65%</aws:Percentage>
<aws:PerUser>2.06</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>pt.stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>0.37%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.17%</aws:Percentage>
<aws:PerUser>2.06</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>es.stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>0.05%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.07%</aws:Percentage>
<aws:PerUser>6.0</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>meta.stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>0.15%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.06%</aws:Percentage>
<aws:PerUser>1.80</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>chat.stackoverflow.com</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>0.10%</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.06%</aws:Percentage>
<aws:PerUser>2.4</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
<aws:ContributingSubdomain>
<aws:DataUrl>OTHER</aws:DataUrl>
<aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
<aws:Reach>
<aws:Percentage>0</aws:Percentage>
</aws:Reach>
<aws:PageViews>
<aws:Percentage>0.15%</aws:Percentage>
<aws:PerUser>0</aws:PerUser>
</aws:PageViews>
</aws:ContributingSubdomain>
</aws:ContributingSubdomains>
</aws:TrafficData>
</aws:Alexa>
</aws:UrlInfoResult>
<aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
<aws:StatusCode>Success</aws:StatusCode>
</aws:ResponseStatus>
</aws:Response>
</aws:UrlInfoResponse>

1551fc65-c954-3af9-4cc1-a6c05a87bb98
stackoverflow.com
66351
stackoverflow.com
49
49
78
0.7%
0.6%
18
20.1%
18.3%
68
1.7%
1.7%
84
1.0%
0.9%
76
0.6%
0.6%
35
0.6%
0.7%
44
3.0%
2.4%
58
0.5%
0.6%
35
5.2%
5.0%
25
0.7%
0.6%
128
0.9%
0.9%
71
1.8%
1.8%
26
1.9%
1.9%
68
13.1%
15.4%
53
0.8%
0.7%
40
0.6%
0.5%
34
3.5%
3.0%
64
1.0%
1.0%
104
0.6%
0.6%
47
1.6%
1.4%
44
0.9%
1.0%
67
2.3%
2.5%
105
1.6%
1.6%
38
3.4%
3.8%
29
1.7%
1.6%
63
2.5%
2.4%
65
1.9%
1.9%
107
0.5%
0.6%
47
0.7%
0.8%
22
0.8%
0.6%
138
0.7%
0.7%
59
0.8%
0.7%
64
1.1%
1.3%
407
1.0%
1.4%
116
4.7%
5.9%
13.5%
13.0%
112
1.7%
1.8%
3.
49
-8
49
-2
16,260
+6.8%
1,021.6
+4.01%
73
-3
4.36
-2.68%
1.
51
+2
50
+1
15,780
-7.59%
1,031.2
-7.33%
75
1.
4.36
+0.2%
7.
50
0
51
+3
15,770
-2.89%
1,047
-3.74%
75
5.
4.39
-0.90%
1.
96
+1
89
0
9,180
+0.6%
629
+4.2%
117
1.
4.37
+4%
stackoverflow.com
1.
99.00%
98.85%
4.35
ru.stackoverflow.com
1.
1.37%
0.65%
2.06
pt.stackoverflow.com
1.
0.37%
0.17%
2.06
s.stackoverflow.com
1.
0.05%
0.07%
6
meta.stackoverflow.com
1.
0.15%
0.06%
1.80
chat.stackoverflow.com
1.
0.10%
0.06%
2.4
其他
1.
0
0.15%
0
成功

您需要使用
simplexmlement::attributes
,即:

foreach($xml->Country[0]->attributes() as $a => $b) {
    echo "$a=$b";
}
//Code=VN
$xml=newsimplexmlement($response,null,false,”)

如果($xml->count()&&$xml->Response->urlinformesult->Alexa->count()){ $info=$xml->Response->UrlInfoResult->Alexa; foreach($info->TrafficData->RankByCountry->Country as$Country) { foreach($country->attributes()作为$code=>$value) { 如果($code=='code'){ echo美元价值; } } 回声'-'; echo$country->Rank,
; } }
你会得到类似
VN-78

IN-18等等

使用php
DOMDocument的快捷方法

$xml = file_get_contents('http://awis.amazonaws.com/doc/2005-07-11');
$doc = new DOMDocument();
$doc->loadXML($xml);
$countries = $doc->getElementsByTagName('Country');
foreach ($countries as $country) {
    echo $country->getAttribute('Code');
}

您可以根据本文提供的XML字符串检查模拟输出

谢谢Pedro。不幸的是,我返回了这个错误:对非对象调用成员函数attributes()。让我尝试一下,你能发布完整的请求吗?我无法使用该示例。已更新问题以包含完整的响应(我想您的意思是,而不是请求)。:)如果可以的话,我会对这个答案投双倍的赞成票,那个XML让我很生气。
$xml = new SimpleXMLElement($response,null,false, 'http://awis.amazonaws.com/doc/2005-07-11');

if($xml->count() && $xml->Response->UrlInfoResult->Alexa->count()) { $info = $xml->Response->UrlInfoResult->Alexa; foreach ($info->TrafficData->RankByCountry->Country as $country) { foreach($country->attributes() as $code => $value) { if ($code == 'Code') { echo $value; } } echo ' - '; echo $country->Rank, '<br />'; } }
$xml = file_get_contents('http://awis.amazonaws.com/doc/2005-07-11');
$doc = new DOMDocument();
$doc->loadXML($xml);
$countries = $doc->getElementsByTagName('Country');
foreach ($countries as $country) {
    echo $country->getAttribute('Code');
}