php脚本无法用冒号(:)读取xml数据

我试图读取youtube xml数据宽​​度php但卡住因为youtube在他的API中使用了冒号(:)

准确地说,这是我使用的脚本:</ strong> </ p>

  $ video = array('/ some arrays here,separate width commas /'); // array  youtube videos 

$ v = preg_replace(“/ [^ A-Za-z0-9 \ - \ _] /”,“”,$ _ GET [“v”]); //确保“v”参数已清理

if(!empty($ v)&amp;&amp; in_array($ v,$ video)){//检查参数“v”是否为空且是您的视频\ n echo('&lt; object width =“853”height =“505”&gt;&lt; param name =“movie”value =“http://www.youtube.com/v/'.$v.'& hl = en_US&amp; fs = 1&amp; hd = 1&amp; color1 = 0xe1600f&amp; color2 = 0xfebd01“&gt;&lt; / param&gt;&lt; param name =”allowFullScreen“value =”true“&gt;&lt; / param&gt;&lt; param name =“allowscriptaccess”value =“always”&gt;&lt; / param&gt;&lt; embed src =“http://www.youtube.com/v/'.$v.'&amp;hl=en_US&amp;fs=1&amp ; hd = 1&amp; color1 = 0xe1600f&amp; color2 = 0xfebd01“type =”application / x-shockwave-flash“allowscriptaccess =”always“allowfullscreen =”true“width =”853“height =”505“&gt;&lt; / embed&gt; ;&LT; /对象&gt;');

} else {
foreach($ video as $ v){
echo('
&lt; div class =“tube”&gt;&lt; a href =“/ pages / tube.php?v ='。 $ v。'“class =”thickbox“&gt;&lt; img style =”border:2px solid#000; margin:5px;“alt =”“src =”http://i1.ytimg.com/vi/' 。$ v。'/ default.jpg“/&gt;&lt; / a&gt;');
$ xmlData = simplexml_load_string(file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$ v。'?fields = title,yt:recorded')); //如果我添加字段只是分隔的宽度逗号

$ title =(string)$ xmlData-&gt; title;
$ records =(字符串)$ xmlData-&gt;录制; //应该是yt:已录制但我明白无法使用:此处!

{echo'&lt; p&gt;'。$录制。' ” $标题。 '&LT; / P&GT;&LT; / DIV&GT;'; }
}
}
</ code> </ pre>

它工作得很好,只是标题。 有可能以某种方式读取yt:录制</ p>
</ div>

展开原文

原文

I tried to read youtube xml data width php but stuck because youtube uses colon (:)in his API To be precise, here is script I use:

$video = array('/some arrays here,separated width commas/');// array of youtube videos

$v = preg_replace("/[^A-Za-z0-9\-\_]/","",$_GET["v"]); // make sure "v" parameter is sanitized

if(!empty($v) && in_array($v,$video)){ //check if parameter "v" is empty and is yours video
    echo('<object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/'.$v.'&hl=en_US&fs=1&hd=1&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$v.'&hl=en_US&fs=1&hd=1&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed></object>');     
}else{
    foreach($video as $v){
        echo('
        <div class="tube"><a href="/pages/tube.php?v='.$v.'" class="thickbox"><img style="border:2px solid #000;margin:5px;" alt="" src="http://i1.ytimg.com/vi/'.$v.'/default.jpg"/></a>');
        $xmlData = simplexml_load_string(file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$v.'?fields=title,yt:recorded'));//it should be working if I add fields just separated width commas

        $title = (string)$xmlData->title;
        $recorded = (string)$xmlData->recorded;//It should be yt:recorded but I understand that cant use : here!

        {        echo '<p>'.$recorded.' '.$title.'</p></div>';    }
    }
}

It works fine width just title. Is it possible to read somehow yt:recorded

1个回答



在尝试访问命名空间值之前,需要先获取命名空间。 请查看 getNamespaces </ code> 方法。 使用 children </ code>,您可以访问命名空间内的值:</ p>

  $ namespaces = $ entry-&gt; getNameSpaces(true); 
$ yr = $入门&GT;儿童($命名空间[ 'YT']);

echo $ yr-&gt;录制;
</ code> </ pre>
</ div>

展开原文

原文

You need to fetch the namespace first before trying to access it's values. Have a look at the method getNamespaces. Using children you can then access values inside a namespace:

$namespaces = $entry->getNameSpaces(true);
$yr = $entry->children($namespaces['yt']); 
echo $yr->recorded;

dtkvlj5386
dtkvlj5386 请检查我的问题stackoverflow.com/questions/6665222 / ...
9 年多之前 回复
dongsou4301
dongsou4301 我正在关注de2.php.net/manual/en/simplexmlelement.getnamespaces.php中给出的第一个示例。 如果我使用与该示例中给出的相同的xml,它就可以工作。 但是对我的xml不起作用。 我想在<?xml version =“1.0”中解析<q:content> </ q:content>标记内的内容?> <q:response xmlns:q =“some link”> <q:impression> <q :content> <html> </ html> </ q:content> <q:cpc> 0.02 </ q:cpc> </ q:impression> <q:app_stats> <q:total> <q:ctr> 0 </ q:ctr> <q:ecpm> 0.0 </ q:ecpm> </ q:total> <q:today> <q:ctr> 0 </ q:ctr> <q:ecpm> 0.0 </ q :ecpm> </ q:today> </ q:app_stats> </ q:response>任何指针? 谢谢
9 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐